富领域模型和贫血模型
例如:一个名叫wangcai的狗要触发这个狗的yaoweiba事件10次
Dog
Dog wangcai = new Dog(); // 一次性通过构造函数创造wangcai.yaoweiba(10);
开放封闭原则:对扩展开放,对修改封闭。
依赖反转原则:面向接口依赖,而不要依赖实现类。
public class Account{private Long id;private Long accountNumber; //private BigDecimal available; // 可用余额public void withdraw(BigDecimal money){// 转入available = available + money;}public void deposit(BigDecimal money){// 转出操作if(money > available){throw new BizException("余额不足");}available = available - money;}}
DDD充血模型。
DDD贫血模型。
通过Account就可以查看到具体的业务操作。如果是账号的其他信息操作,例如修改用户信息,则可以用另外的model来实现
业务随着实体变化而变化
Order(订单)->OrderItem(订单信息)->Address(订单地址信息)
在DDD中通过在Order设计一个订单ID,然后其他信息放在OrderItem和Address中,并且作为Order的一个子对象,每次操作的时候操作Order。
实体与子对象的关系。
Repository 仓库
Factory工程组装
