我是设计模式的新手,正在尝试了解它们通常的样子。现在我正在尝试理解外观模式。我觉得外观模式是一个相当广泛的概念,所以我想知道我的第二个图是否会被视为外观模板的一部分。
我知道一个典型的外观模式基本上是这样的(A 级是外观):
但是如果我们有一个更微妙的图表,如下所示:
A 级仍会被视为外观级还是取决于上下文?
首先,为了理解门面,我喜欢将其视为一种重构。想象一下你的两个图表without门面类。客户端必须直接与外观管理的所有类进行交互。因此,它们会更加复杂,耦合性更强。
外观为客户端提供简化的服务(减少耦合),隐藏复杂性behind门面。
我最喜欢的例子(Java)是JOptionPane
班级。它在 Java 的最早版本中不存在,如果您想创建是/否问题对话框,您(作为客户端)必须管理对 Dialog、Button 等的所有调用以及处理事件,等等。所有这些复杂性都被简化为内部的静态方法JOptionPane
门面类。这是来自的 UML 图https://best-practice-software-engineering.ifs.tuwien.ac.at/patterns/facade.html
现在回答你的问题:
A 级仍会被视为外观级还是取决于上下文?
If A
为客户提供简化的服务,有效地使用复杂的子系统B
, C
, F
and E
,如果没有它,客户将不得不直接与他们所有人交互(耦合),那么我会说A
是一个门面。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)