这两天在研究领域驱动设计,准备用于公司的产品

领域驱动设计(DDD),貌似很强大,遵循OO的思想。

但DDD落地有点难度,软件一般都会分层架构,整个系统分为3层或4层。

三层的分别为:展示层、业务逻辑层、数据访问层。

四层大致为:展示层,业务逻辑层,领域层,数据访问层。

 

在四层的架构中,我们看到了领域层。顾名思义,里面是放领域对象的。里面的领域有可能除了包含领域固有的逻辑外,还会包含一些操作持久化对象的方法。

为了满足单一职责,提高复用的能力,有必要将操作持久化对象的方法分离出去。有牛人建议使用Repository来封装持久化对象的操作方法,想法貌似不错。但当真正这样干的时候,总是会遇到这样那样的问题,比如:

1、领域对象之间有很多关联、依赖的关系,当表示层或者业务逻辑层链式调用领域对象时……(可能我希望是延迟加载数据)

2、当表示层创建了一个暂未持久化的对象链后,通过业务逻辑层持久化时……

以上第一个问题,特别是在分布式系统中,会更为麻烦。

 

我目前是这样想的:

1、解决延迟加载的方法:领域对象中定义了关联属性的get事件,在get前,要求Repository先执行get事件挂载的方法(就是调用时取值、赋值)。

2、解决链式存储的方法:让领域对象对应的Repository对象委派其关联或依赖的领域对象对应的Repository进行持久化。

 

但1中在wcf或者web service中会有问题。

 

  基于控制台的,没有用WCF的Demo。

转载于:https://www.cnblogs.com/zhonghua/archive/2011/06/24/2088979.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值