理清誤區,微服務不是獨立部署的一臺服務,而是更深層次意義上可高度複用的一個模塊。因此設計模式非常重要,不是簡單的接口服務實現。DDD領域驅動設計意在實現微服務的重構,設計的好纔可以讓重構可行,讓重構簡單可行。
重構類 extends 微服務內部實現類 extends 全局抽象類
領域根:控制整個領域聲明週期、實體模型、領域服務、提交器、觸發器
實體:唯一的對象
領域服務:對實體進行增刪改查校驗
package FKS;
/**
* Author:FangKunSen
* Time:2020-07-02,20:29
*/
public interface MarkInterface<model extends FatherDTO,agg> {
String getMethodName();
String setParam(agg domain);
model getModel();
void load(model mode);
}
package FKS;
import FKS.Annotation.ClassName;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* Author:FangKunSen
* Time:2020-07-02,20:43
*/
@Slf4j
@Service
public class ImplClass<model extends FatherDTO, agg> implements MarkInterface<model,agg> {
protected model AggModel;
@Override
public String getMethodName() {
return "";
}
@Override
public String setParam(agg domain) {
return "your domain type: "+ domain.getClass().getName();
}
@Override
public model getModel() {
return this.AggModel;
}
@Override
public void load(model mode){
Class<?> clazz = mode.getClass();
ClassName annotation = clazz.getAnnotation(ClassName.class);
log.warn("加載實現類成功,設置了方法【{}:{}】爲根方法",annotation.value(),mode.getName_method());
this.AggModel = mode;
}
}
未完待續……