富领域模型和贫血模型
例如:一个名叫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工程组装