外立面和抽象发生方式

时间:2018-12-09 11:19:41

标签: design-patterns abstraction facade

facade模式的重要优点之一是它减少了类之间的依赖关系,这对我来说并不明确,因为我不知道任何实现此模式的示例。另外,我知道我们使用抽象发生模式,这样我们就可以使一个类保留相关对象之间的公共信息,而使另一个类保留这些对象的发生,但是我仍然无法弄清楚有什么好处之所以这样做,是因为我们仍然可以创建一个可以创建这些相关对象的类?所以请有人澄清这两点。

1 个答案:

答案 0 :(得分:2)

您对这些模式的不清楚或毫无意义的示例是正确的。为了阐明这些模式,我将通过两个正确的示例对其进行解释。

外观

如下面的图片所示,第一个在客户和订单系统之间有很多关系,而第二个设计更好,并且减少了外部实体和内部实体之间的依赖性。

WithoutFacade

Facade

抽象发生

对于实施我们的项目,您可以做所有事情,但是模式可以帮助我们正确地完成它。因此,如果要避免重复数据,应遵循抽象发生模式。例如,在图书馆中,项目(对象)具有共同的属性,例如名称,作者等,但是这些项目具有不同的属性,例如barCodeNumber,如果我们将所有属性合并到一个类中,我们可以不要单独使用通用属性。例如,另一个实体可能需要标题属性和不同的属性,但是只有一个类,我们无法做到。抽象发生模式可以帮助我们处理这些情况。

Abstraction-Occurrence