2012-02-20 42 views
7

我正在研究设计模式的问题。在这种情况下,我想实现的设计模式“门面设计模式“门面”

我知道,“可可触摸”为我们提供完整的解决方案在我们的项目中应用设计模式(例如NSNotificationCenter - 实现观察者设计模式)

我的问题是: - 我们有能力使用设计模式'门面'以及在观察员的情况下设计模式。

现在我实现了“门面”这样的:

,比如我有一个实现一些计算一些类。 '门面'类结合我需要计算的所有类。例如我有类A,B,C和Facade(包含A,B和C类)。

当我想计算一些东西时,我只是创建我的'门面'并传递一些参数进行计算。在这种情况下,我不知道类A,B,C,并且此Facade对象仅为我提供一个访问点。

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

它是否正确实施?

回答

7

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

+0

感谢一个很好的例子! – 2012-06-18 14:52:10

1

门面模式背后的动机是为经常使用的情况提供一个简化的接口,同时适应跨越简化接口的能力,并在必要时与门面后面的更复杂的方面进行交互。正如你所描述的你的实现,它肯定会符合描述,并且没有理由不能将正面模式与通知/观察者模式结合使用...

4

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

+0

感谢您的回复!我喜欢它的例子(我的意思是电视和DVD) – 2012-02-20 15:46:56

7

Facade被定义为一组接口的统一接口 - 排序更高级别的接口以降低复杂性。而不是处理几个类,并知道每个类的API都减少到正面。你的解释对我来说很合适。