9

我有一个关于模式的问题。我真的有设计模式的问题。你能告诉我外观模式和构建器、工厂和抽象工厂模式之间的区别吗?

4

3 回答 3

6

当您想要隐藏实现或以其他方式在外部提供不同的接口时,使用外观模式。当您想要隐藏构造实例的详细信息时,使用构建器/工厂模式。

于 2010-05-03T20:07:40.070 回答
4

外观模式从开发人员那里抽象出细节,并使某些部分代码更易于使用。

Builder 模式将对象的构造与其表示分离。这使得跨多种类型使用相同的构造过程成为可能。

工厂和抽象工厂都处理基于调用工厂时使用的某些参数来实例化一组相关的类。

于 2010-05-03T20:07:23.503 回答
2

这些以及其他模式可能通常看起来非常相似。不同之处在于您为使用模式所做的设计决策。

外观是关于更改某些类或一组类的接口。Builder 通过以较小的步骤分解构造过程来隐藏构造过程。工厂是关于隐藏对象或对象图的具体实现或实例化。

混淆可能来自这样一个事实,即 Builder 通常以某种方式更改对象的接口以允许更好的构造方式,这也可以由 Facade 完成。与工厂类似。

所以不要忘记这些模式的实现中的微小差异,关于设计模式最重要的部分是你做出的设计决策。

于 2010-05-03T23:33:43.513 回答