2 领域概念

关联

模型关联越少越好

简化关联
1.规定一个遍历方向
2.添加限定符(如一个国家有过很多总统,但每个时期只有一个,时期就是限定符)
3.消除不必要的关联

实体

实体具有生命周期,在生命周期内可跟踪
简单的讲,如果我们要追踪一个物体,那么他就是一个实体,实体的信息不一定要保存在数据库中,例如:
站点图片,我们要时刻掌握站点图片的信息,在以便在业务中对站点图片进行操作,这时站点图片就是实体,而这个实体的标识是完全路径名,图片的信息(如图片的大小)我们可以利用IO函数从图片中获取

值对象

值对象没有标识,无生命周期,生成后不可变
值对象可引用实体
值对象可被实体引用,只能替换,不能修改
值对象常被用作参数才对象之间传输

将实体的多个属性封装为值对象的前提是,这些属性是不可修改的,而且需要一起生成

应尽量清楚值对象之间的双向关联,如果必须这么关联,那有没有可能将其中一个实体误认为是值对象

领域服务

领域服务经常以 动词 命名,如FundsTransfer(资金转账)

如果有一个动作,会在很多地方调用,且将它应用到其他领域对象中都不合适,那么它可能是一个领域服务

有些领域服务会以Manager结尾,如LoginManager

服务操作是无状态的,即一定的输入就会有一定的输出

一般的领域服务基类声明如下

LoginManagerBase<TUser, TRole> where TUser:User, TRole:Role
{
}

这样做的好处是可以方便对登录这个领域服务进行扩展

关于应用服务和领域服务
应用服务职责:
1.处理输入输出
2.调用领域层(不组织领域逻辑)
3.调用基础设施层

领域服务职责:
1.组织领域逻辑

问:怎样是组织领域逻辑
答:一些领域动作要一起调用才能完成这次请求,如
不是组织

If(a!=null){
	Class1.action1()
}
If(b!=null){
	Class2.action2()
}

是组织(所以if里的逻辑应该在领域层)

If(a!=null){
	Class1.action1()
	Class2.action2()
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值