外观模式和抽象工厂模式有什么区别?

45

我不是在问面试的角度,而是要了解实际项目中如何实施它,比如在Struts框架等中实施时的实时场景是什么?


3
它们有足够的差异以属于不同的“类别”:一个是结构性的,另一个是创造性的。 - Marko Topolnik
2个回答

20

Facade(外观)是一个类或一组类,用于将内部实现/服务隐藏起来,使用户无法看到。

抽象工厂(Abstract Factory)封装了一组用于创建对象的工厂,而Facade可以用于提供对各种操作(不仅仅是创建)的抽象。


7

它们是用于解决两个不同问题的两种模式,并且它们完全无关。

使用 抽象工厂模式,你只需要为同一事物的许多不同构建器提供一个常见的工厂构造器。每当你需要为一组构建器提供接口以用于某个共同的事物(产品),而不必担心要构建什么或者将要使用哪个工厂时,可以使用该模式。

外观模式 相反,用于为许多不同操作提供简单的接口,客户端类不应该看到这些操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接