为什么没有第11章?
11章将了应用分析模式,没咋看懂,东西也不多。如有需要可以看《分析模式》一书。
一、模式:STRATEGY(也称POLICY)
why?
领域模型包含一些并非用于结局技术问题的过程,将它们包含进来是因为它们处理问题领域具有实际的价值。当必须从多个过程中进行选择时,选择的复杂性加上过程本身的复杂性会让局面失去控制。
how?
我们需要把过程中易变的部分提取到模型的一个单独的“策略中”。将规则和它所控制的行为分开。按照STRATEGY设计模式来实现规则可替换的过程。策略对象的多个版本表示了完成过程的不同方式。STRATEGY侧重于替换不同算法的能力,而当其作为领域模式时,其侧重点则表示概念的能力,这里的概念通常是指过程或者策略规则。
二、模式:COMPOSITE(组合)
why?
当嵌套容器的关联性没有在模型中反映出来时,公共行为必然会在层次结构的每一层重复出现,而且嵌套也变得僵化。客户必须通过不同的接口来处理层次结构中的不同层,尽管这些层在概念上没有区别。通过层次结构来递归的收集信息也变得非常复杂。
how?
定义一个COMOSITE的所有成员都包含在内的抽象模型。在容器上实现那些查询信息的方法时,这些方法返回由容器内容所汇总的信息。而“叶”节点则基于它们自己的值来实现这些方法。客户只需使用抽象类型,而无需区分“叶”和容器。
三、个人感悟
书中本章只介绍了两种模式。但是实际上可用的模式不止这些。前几章也提到了工厂方法模式等。设计模式和领域模型的设计可以结合来使用。