我正在研究设计模式的问题。在这种情况下,我想实现设计模式' Facade '
我知道' Cocoa Touch '为我们在项目中应用设计模式提供了完整的解决方案(例如NSNotificationCenter - 实现观察者设计模式)
接下来我的问题是: - 我们是否有能力使用设计模式' Facade '以及观察者设计模式。
现在我像这样实施' Facade ':
例如,我有一些实现一些计算的类。 “ Facade ”类将我需要计算的所有类组合在一起。
例如,我有A,B,C和Facade类(包含A,B和C类)。
当我想要计算某些内容时,我只需创建“ Facade ”并传递一些参数进行计算。在这种情况下,我不知道类A,B,C,这个Facade对象只为我提供了一个访问点。
此设计模式封装了对象并简化了应用程序。
这是正确的实施吗?
答案 0 :(得分:7)
Facade被定义为一系列接口的统一接口 - 一种更高级别的接口,以降低复杂性。而不是处理几个类,并知道每个类的API减少到外观。你的解释看起来不错。
答案 1 :(得分:7)
另一个实现门面模式的好例子 - 披萨呼叫服务。 例如,披萨服务(子系统)非常大,它由三个部门(接口)组成:订单部门,折扣部门,交付部门。每个部门都有自己的逻辑和接口。 您可以简单地在其上实现外观模式。 Here这个例子更详细。
答案 2 :(得分:4)
这是正确的解释(我没有看到实施)。在现实生活中与Facade模式的良好关联是远程控制 - 您可以运行电视功能,DVD等。
答案 3 :(得分:1)
外观模式背后的动机是为常用案例提供简化的界面,同时适应通过简化界面的能力,并在必要时与外观后面的类的更复杂方面进行交互。正如您所描述的那样,它肯定似乎符合描述,并且没有理由不能将Facade模式与通知/观察者模式结合使用......