• 对象和数据的主要差别就是对象有行为,行为可以看成责任职责(responsibilities以下简称职责)的一种,理解职责是实现好的OO设计的关键。“Understanding responsibilities is key to good object-oriented design”—Martin
  • 在Evans DDD实现过程中,经常会碰到实体和服务Service以及Repository交互过程,这个交互过程的实现是一个难点,也是容易造成失血贫血模型的主要途径。 因为实体的业务方法需要和服务或Reposirtoy打交道,如果把这个业务方法放入服务,就
  • 我曾经DCI架构是什么?在一文中提到Qi4j框架实现DCI架构比较好,dzone今天就有一篇文章专门谈 icon
  • 最近我和oojdon讨论给帖子加上浏览阅读次数这个功能,起初我们并没有从职责角度来考虑阅读次数这个功能,就简单地在Service中获得Thread方法时,添加一些代码,用来统计次数。 因为我们这时重点是如何用Domain Events来实现阅读次数持久化问 icon
  • 我JDOM上看了bangq关于DDD模式的设计思想,上面提到了关于聚合根的概念,还是不太能理解,请哪位高人举个例子吧。 icon
  • 我在我们的项目中引入了ddd的分析方式,可能有点粗略,但是我尽量往ddd靠近,有几点迷惑:1.统一语言:我们掌握需求信息,根据获取的用户需求列表来分析业务;根据我们的经验来抽取统一语言;我们使用统一语言来建模,实现对象之间的关联关系,但是最大问题是,我们确定的这个统一语言是在变化的,尤其是跟 icon
  • 感谢banq,这几天一直在研究dddsample 实例代码,结合目前项目正在使用的开发框架写点理解心得: 先说一下目前我们项目框架也是三层结构(见下图): 显示层:struts配置文件(jsp,js,action,actionform) 业务层:sprin icon
  • 请问以下这种情况怎样处理比较好?系统中有多个group,每个group有多个user,另外还可以添加、删除、重命名group,看起来group与user是聚合而且group和user都是Entity。但我们这个项目的实际应用中又几乎不会用到group,group就是在查看user的时 icon
  • 有一个租车订单管理系统,核心是订单,一个订单允午有多部车辆,订单也会有跟单员和业务员,为了及时能联系客户,也会需要乘客信息(有多个乘客) 订单中包括以下元素:1、租车客户(Customer)2、订单的跟单员(User)3、订 icon
  • Hi banq:当我建立领域模型的时候,我对错误处理方案比较疑惑,先建立一个用例吧:用户注册:我建立了一个UserService类,并写如下方法:void Register(string name){ //验证用户名是否合法//验证用户名是否已经存在/ icon
  • banq老师你好 有个问题想请教下,就是关于FormThread和FormMessage是否是聚合关系的疑惑? 在我的理解中,FormThread应该是FormMessage的一个聚合根,因为1:当删除一个FormThread的时候,就应该删除这个FormThrea下的所 icon
  • 在需求分析到设计的过程中,从分析类到设计类。在实现阶段,对于对象职责有的时候把握不好,不是很确定职责究竟放在哪里,我考虑的方面有两点:1。根据实际业务领域的情况,从抽象出的领域模型中进行分析,属于直觉感官。2。依据重构的方式,从对象的属性理解,数据与处理数据的职责进行迁移。这 icon
  • 有类关系如下:public class StoreHose{ //仓库类 private List storeages = new ArrayList(); ...} icon
  • 在学习DDD中的对象生命周期时,出现了不变量,不变性的概念,看得不是很清晰,不变量是指啥,如何确定不变量,不变性规则? icon
  • 有这么一种情况,不知道大家是否遇到,当一个Entity A中包含了一种Value Object A,而且,使一对多的关系,就是说一个Entity A包含多个Value Object A,我想问问如何维护,比如,我想删除其中一个Value Object A从这个Entity A中,或者我想保证Valu icon
  • 现在我们有一个项目,客户端主要分为两类功能,一类是许多类似网站后台似的管理程序,主要是增删改查,感觉用bs更好,另一类是完成图像处理的功能,其交互复杂性和计算要求更适合采用CS程序,而且整套系统中数据流转时bs程序和cs程序有很多业务数据是相关的,需要公共访问的类、接口等。这时问题就来了,E icon
  • 比如,订单分临时和正式的,临时订单就是可以修改的,正式订单就是确定下来的,这样的话,两种订单的操作肯定不一样,很明显,我们可以抽象出Order接口,而接口的意义在于忽略实现,但是这两种订单操作不一样,如果我们只是简单的额Order tempOrder = new TempOrder(),那么临时对 icon
  • 请教banq老师:我在做一个美容的客户的档案的时候发现客户的类不好做设计我大致给一个客户分成三部分,基本信息,病例,健康状况1.基本信息:姓名,电话,年龄等2.病例:每个月使用某一类美容产品的反馈,比如:第一个月,皮肤状况如何,用了哪些产品;第二个月,XXX,XXX; icon