我试图找到教程和很好的例子来解释这两者之间的差异,但却无法找到任何信息。
纯粹的制作和间接行为可以创造和分配中间对象的责任,所以任何人都可以解释这些设计模式之间的区别吗?
谢谢!
我试图找到教程和很好的例子来解释这两者之间的差异,但却无法找到任何信息。
纯粹的制作和间接行为可以创造和分配中间对象的责任,所以任何人都可以解释这些设计模式之间的区别吗?
谢谢!
你用 间接 如果要在组件之间创建较低的耦合。 Larman在应用UML和Patterns中建议的示例是TaxCalculatorAdapter类。为了保护客户端不必知道可能的适配器的内部工作,他用间接隐藏它们,只暴露所需的API。这个间接将与适应者高度耦合,但只与客户松散耦合。
该 PersistentStorage
来自Pure Fabrication 确实是一个 Indirecton (Larman在书中说明了这一点)因为它提供了较低的耦合。 Pure Fabrication
除此之外,它创建的对象不属于您的域模型。
Larman给出的示例是域类 Sale
。以来 Sale
拥有要保存的所有数据,它也可以作为保存销售的逻辑(信息专家)。但是,持久性逻辑与销售的概念无关,因此该类将变得不连贯。此外,通过将Sale与特定的DB API耦合,您可以限制重用(间接到救援)。而且由于保存是一般活动,您可能还会在需要保存的对象中复制代码。为了避免这种情况,你做了一些事情(纯粹的制作),意味着你创造了一些不属于领域模型的东西(这里:a PersistentStorage
),但仍然捕获您的应用程序中的基本活动。
因此,Pure Fabrication它是间接的专业化或变体。
你用 间接 如果要在组件之间创建较低的耦合。 Larman在应用UML和Patterns中建议的示例是TaxCalculatorAdapter类。为了保护客户端不必知道可能的适配器的内部工作,他用间接隐藏它们,只暴露所需的API。这个间接将与适应者高度耦合,但只与客户松散耦合。
该 PersistentStorage
来自Pure Fabrication 确实是一个 Indirecton (Larman在书中说明了这一点)因为它提供了较低的耦合。 Pure Fabrication
除此之外,它创建的对象不属于您的域模型。
Larman给出的示例是域类 Sale
。以来 Sale
拥有要保存的所有数据,它也可以作为保存销售的逻辑(信息专家)。但是,持久性逻辑与销售的概念无关,因此该类将变得不连贯。此外,通过将Sale与特定的DB API耦合,您可以限制重用(间接到救援)。而且由于保存是一般活动,您可能还会在需要保存的对象中复制代码。为了避免这种情况,你做了一些事情(纯粹的制作),意味着你创造了一些不属于领域模型的东西(这里:a PersistentStorage
),但仍然捕获您的应用程序中的基本活动。
因此,Pure Fabrication它是间接的专业化或变体。