【发布时间】:2011-02-15 04:38:27
【问题描述】:
我有一个关于模式的问题。我真的有设计模式的问题。你能告诉我外观模式和构建器模式、工厂模式和抽象工厂模式之间的区别吗?
【问题讨论】:
我有一个关于模式的问题。我真的有设计模式的问题。你能告诉我外观模式和构建器模式、工厂模式和抽象工厂模式之间的区别吗?
【问题讨论】:
当您想要隐藏实现或以其他方式在外部提供不同的接口时使用外观模式。当您想隐藏构造实例的细节时,使用构建器/工厂模式。
【讨论】:
Facade 模式从开发人员那里抽象出细节,并使某些部分代码更易于使用。
Builder 模式将对象的构造与其表示分开。这使得跨多种类型使用相同的构造过程成为可能。
工厂和抽象工厂都处理基于调用工厂时使用的某些参数来实例化一组相关的类。
【讨论】:
这些以及其他模式可能通常看起来非常相似。不同之处在于您使用模式所做的设计决策。
Facade 是关于改变某些类或类集的接口。 Builder 通过以较小的步骤分解构造过程来隐藏构造过程。工厂是关于隐藏对象或对象图的具体实现或实例化。
混淆可能来自这样一个事实,即 Builder 通常会以某种方式更改对象的接口以允许更好的构造方式,这也可以通过 Facade 来完成。与工厂类似。
因此,不要忘记这些模式的实现中的细微差别,并且关于设计模式最重要的部分是您做出的设计决策。
【讨论】: