实体:有一类对象看上去好像拥有标识符,它的标识符在历经软件的各种状态后仍然保持一致。
值对象:如果值对象是可共享的,那么它们应该是不可变的。值对象应该保持尽量的简单。当其他当事人需要一个值对象时,可以简单地传递值,或者创建一个副本。
服务: 1. 服务执行的操作涉及一个领域概念,这个领域概念通常不属于一个实体或者值对象。
2. 被执行的操作涉及到领域中的其他的对象。
3.操作是无状态的。
软件代码应该具有高层次的内聚性和低层次的耦合度:最常用到的两个是通信性内聚和功能性内聚。通信性内聚通常在模块的部件操作相同的数据时使用。把它们分到一组很有意义,因为它们之间存在很强的关联性。功能性内聚在模块中的部件协同工作以完成定义好 的任务时使用。
聚合是一个用来定义对象所有权和边界的领域模式。工厂和资源库是另外的两个设计模式,用来帮助我们处
理对象的创建和存储问题。聚合:是针对数据变化可以考虑成一个单元的一组相关的对象。
工厂:帮助封装复杂的对 象创建过程,它就是工厂 (Factory)
资源库:资源库会保存对某些对象的引用。当一个对象被创建出来时,它可以被保存到资源库中,然后以后使用时可从资源库中检索到。如果客户程序从资源库中请求一个对象,而资源库中并没有它,就会从存储介质中获取它。换种说法是,资源库作为一个全局的可访问对 象的存储点而存在。
重构:重构是不改变应用行为而重新设计代码以让它更好的过程。
简化的建模:关于建模的第一件事是阅读业务规范,从中寻找名词和动词。名词被转换成类,而动词则成为方法。
最好的实现过程的方式是使用服务。其他的处理过程的不同的方式如,将算法封装进一个策略对象。
约束方法化:将约束置于一个单独的方法让它显示化有很多优点。它很容易阅
读,如果约束变得更复杂,这可以为向该方法增加更多逻辑提供增长空间。
感谢infoq!