我试图找到教程和好的示例来解释这两者之间的区别,但找不到任何信息。
纯粹的制造和间接行为可创建中间对象并为其分配职责,因此,谁能解释这些设计模式之间的区别?
谢谢!
最佳答案
如果要在组件之间创建较低的耦合,则可以使用“间接”。 Larman在“应用UML和模式”中建议的示例是TaxCalculatorAdapter类。为了使客户端不必知道可能的适配器的内部工作原理,他使用间接方式将其隐藏,仅公开所需的API。这种间接性将与被适配者高度耦合,而与客户之间的耦合则很松散。
来自Pure Fabrication的PersistentStorage
实际上是一个Indirecton(拉曼在书中这样说),因为它提供了较低的耦合。 Pure Fabrication
超出了此范围,尽管它创建的对象不是域模型的一部分。
Larman提供的示例是域类Sale
。由于Sale
具有要保存的所有数据,因此也可以保留保存销售的逻辑(信息专家)。但是,持久性逻辑与Sale的概念无关,因此该类将变得无内聚。另外,通过将Sale耦合到特定的DB API,可以限制重用(对救援的间接访问)。并且由于保存是一项常规活动,因此您可能还会在也需要保存的对象中复制代码。为了避免这种情况,您需要进行某种组合(纯加工),这意味着您创建的某种内容不是Domain模型的一部分(此处为PersistentStorage
),但仍捕获了应用程序中的一项基本活动。
因此,Pure Fabrication是Indirect的一种专门技术,或者是它的一种变体。