design-patterns - 外观和抽象的出现模式

标签 design-patterns abstraction facade

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

最佳答案

关于这些模式的不清楚或无意义的例子,你是对的。为了阐明这些模式,我将用两个正确的示例来解释它们。

外观

正如您在下面的图片中看到的,第一个在客户和订单系统之间有很多关系,而第二个有更好的设计,它减少了外部实体和内部实体之间的依赖。

WithoutFacade

Facade

抽象发生

为了实现我们的项目,您可以做任何事情,但模式可以帮助我们正确地完成它。因此,如果你想避免重复数据,就应该遵循抽象发生模式。例如,在库中,项目(对象)具有共同的属性,例如名称、作者等,但这些项目具有不同的属性,例如 barCodeNumber 并且如果我们将所有属性合并到一个类中,我们不能单独使用公共(public)属性。例如,另一个实体可能需要为属性和不同的属性添加标题,但对于单个类,我们无法做到这一点。抽象发生模式帮助我们处理这些情况。

Abstraction-Occurrence

关于design-patterns - 外观和抽象的出现模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53691768/

相关文章:

design-patterns - 设计模式的序列图存储库

java - 如果在验证规则中使用类型代码,如何进行重构以消除类型代码?

java - 如何抽象出两种不同的缓存实现

java - 门面或装饰

design-patterns - 我们可以说外观和适配器在设计模式上或多或少相同吗?

vb.net用不同的接口(interface)实现策略模式

c# - 单一范式 OOP 会导致抽象反转吗?

java - 为什么要使用 getter 和 setter/accessor?

python - python 中的组合和外观是同一件事吗?

c++ - 通过隐式类型转换模拟接口(interface)