设计模式“门面”

时间:2012-02-20 14:23:16

标签: objective-c ios design-patterns

我正在研究设计模式的问题。在这种情况下,我想实现设计模式' Facade '

我知道' Cocoa Touch '为我们在项目中应用设计模式提供了完整的解决方案(例如NSNotificationCenter - 实现观察者设计模式)

接下来我的问题是: - 我们是否有能力使用设计模式' Facade '以及观察者设计模式。

现在我像这样实施' Facade ':

例如,我有一些实现一些计算的类。 “ Facade ”类将我需要计算的所有类组合在一起。

例如,我有A,B,C和Facade类(包含A,B和C类)。

当我想要计算某些内容时,我只需创建“ Facade ”并传递一些参数进行计算。在这种情况下,我不知道类A,B,C,这个Facade对象只为我提供了一个访问点。

此设计模式封装了对象并简化了应用程序。

这是正确的实施吗?

4 个答案:

答案 0 :(得分:7)

Facade被定义为一系列接口的统一接口 - 一种更高级别的接口,以降低复杂性。而不是处理几个类,并知道每个类的API减少到外观。你的解释看起来不错。

答案 1 :(得分:7)

另一个实现门面模式的好例子 - 披萨呼叫服务。 例如,披萨服务(子系统)非常大,它由三个部门(接口)组成:订单部门,折扣部门,交付部门。每个部门都有自己的逻辑和接口。 您可以简单地在其上实现外观模式。 Here这个例子更详细。

答案 2 :(得分:4)

这是正确的解释(我没有看到实施)。在现实生活中与Facade模式的良好关联是远程控制 - 您可以运行电视功能,DVD等。

答案 3 :(得分:1)

外观模式背后的动机是为常用案例提供简化的界面,同时适应通过简化界面的能力,并在必要时与外观后面的类的更复杂方面进行交互。正如您所描述的那样,它肯定似乎符合描述,并且没有理由不能将Facade模式与通知/观察者模式结合使用......

相关问题