关于DDD的认识
引用自http://www.jdon.com/jivejdon/forum/messageList.shtml?thread=32093&count=15&start=30
什么是DAO,Repository? 在Repository情况下,DAO其实是多余的,Repository可以完全替代DAO。 在仓储也包含CRUD操作,这些操作必须包括完整聚合关系,保证不变性,比如帖子和论坛之间就是不变性,汽车和汽车发动机和车身都是不变性的,这些都要在仓储完成,比如保存汽车时,必须对汽车发动机和车身一同做保存,而且必须依赖事务全部锁定,只有一个用户才能操作;查询汽车时,也必须给汽车组装好汽车发动机等,当然这里面涉及工厂模式和Builder模式。 DDD的了解 所谓的 DDD无异于将所有的业务抽象到领域层,所有的都是对象,所有的对象对自己负责,具体实现时,我的思路是这样的: 首先对业务领域建模,摈弃以往的以数据为中心的思想,首先不考虑哪些需要持久化,尽管根据业务流程进行建模,建模完成后,到了我们考虑哪些数据需要持久化了。从领域对象中找出需要持久化的数据模型,再次审视所有的业务对象的职责,或者通俗的说,把握一个尺度,对于所有与持久化相关的操作,如果是简单的CRUD则放到对应DAO中,涉及查询等放到仓储中查询,使用工厂进行对象创建,如对于lay-load之类的问题则可以通过仓储和工厂解决。大颗粒度操作抽象到对应服务中。最后就是再次在更高的层次审视整个模型,必要时使用Facade 模式,在系统最上方加一层,如果涉及团队或老系统集成,在必要的Context中添加anti-corruption层 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |