HTML5技术

如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑 - Zachary_Fan(2)

字号+ 作者:H5之家 来源:H5之家 2016-12-27 13:06 我要评论( )

其中需要注意的是Entity中的ID其实就是对DelegateIdentifier.Identity的引用,也就是仅仅为了做一个Public的公开。另外AloneStorableValueObject与ValueObject唯一不同是其需要持久化并独占一个数据表,而ValueObje

   其中需要注意的是Entity中的ID其实就是对DelegateIdentifier.Identity的引用,也就是仅仅为了做一个Public的公开。另外AloneStorableValueObject与ValueObject唯一不同是其需要持久化并独占一个数据表,而ValueObject是不需要持久化或者跟着所属的聚合根持久化的。然后我们的IRepository<T>变成下面这样约束:

public interface IRepository<T> where T : DelegateIdentifier, IAloneStorable { string NextIdentity(); void Save(T aggregate); T GetByIdentity(string identity); }

  这样只有继承了AggregateRoot和AloneStorableValueObject可以有自己的Repository了。

 

六、结语

  从业务角度来说设计就是不断的梳理业务再抽象建模的过程,不是一蹴而就,也没有一招打遍天下的方式。需要不断的演进、找到最适合的设计方式。从更泛角度来说设计也是约束、定义规则的过程,一套清晰的规则可以为整个项目的所有开发者往共同的目标前进起到事半功倍的效果。

 

 

 

本文的源码地址:https://github.com/ZacharyFan/DDDDemo/tree/Demo9。

 

作者:Zachary_Fan
出处:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 如何开发一款堪比APP的微信小程序(腾讯内部团队分享) - 腾讯攻城师lee

    如何开发一款堪比APP的微信小程序(腾讯内部团队分享) - 腾讯攻城师

    2016-12-22 17:01

  • 记一次和阿里某总监对话引发的思考:说说你框架的设计思路和优点亮点! - 路过秋天

    记一次和阿里某总监对话引发的思考:说说你框架的设计思路和优点亮点

    2016-12-20 11:00

  • 如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成 - Zachary_Fan

    如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成 - Zacha

    2016-12-14 13:01

  • 订阅号如何实现网页授权? - 枫叶落一地

    订阅号如何实现网页授权? - 枫叶落一地

    2016-12-12 16:00

网友点评
s