《2018年領域驅動設計中國峰會:DDD的為與不為.pdf》由會員分享,可在線閱讀,更多相關《2018年領域驅動設計中國峰會:DDD的為與不為.pdf(24頁珍藏版)》請在三個皮匠報告上搜索。
1、DDD?DDD?DDD?DDD?KISS?YAGNI?DRY?DDD?DDD?VSDDD?VS?vs?jar?IT?pay()pay()pay()setPaid()?pay()pay()pay()pay()paid=true?public class Order private PayService payService;private boolean paid;public void pay()payService.pay();paid=true;OrderPayservice?EntityTable(name=“App.Orders”)public class Order IdGenera
2、tedValue(strategy=GenerationType.IDENTITY)private int id;?JsonTypeInfo(use=JsonTypeInfo.Id.NAME,include=JsonTypeInfo.As.PROPERTY,property=ticketType)JsonSubTypes(JsonSubTypes.Type(value=OilInspectionTicket.class,name=OIL_INSPECTION),JsonSubTypes.Type(value=FieldServiceTicket.class,name=FIELD_SERVICE
3、),JsonSubTypes.Type(value=PublicTicket.class,name=PUBLIC)public abstract class Ticket private String id;private int distributorId;private String factoryId;private String factoryName;?OrderDBDomain ModelOrderPersistence ModelFactoryPayservice?OrderWriteApplicationServiceOrderReadApplicationServiceOrd
4、erAggregate RootRepositoryDBWhatever Read Modelcommandrepresentation?public void sendMessage(List users,String message)if(users.size()=1)users.add(users.get(0);doSend(users,message);?public class PurchaseOrder private PurchaseOrderId id;public class PurchaseOrder private String id;vspublic class PurchaseOrderId private final String id;THANK YOU