【发布时间】:2023-03-04 16:54:02
【问题描述】:
在经典的 Facade 模式中,单个对象通常为更复杂的事物提供简化的接口。
正如四人组所说(尽可能接近“官方”......):
Facade (185) 为子系统中的一组接口提供统一的接口。 Facade 定义了一个更高级别的接口,使子系统更易于使用。
和
...外观只是将接口抽象为子系统对象,以使它们更易于使用;它没有定义任何新功能,子系统类也不知道它。
或者,正如 Unmesh 在 https://stackoverflow.com/a/5242476 中所说的那样:
Facade 使用户免受系统复杂细节的影响,并为他们提供易于使用的简化视图。它还将使用系统的代码与子系统的细节解耦,便于以后修改系统。
单一职责原则告诉我们
一个类或模块应该有一个,而且只有一个,改变的理由。
鲍勃叔叔 (http://en.m.wikipedia.org/wiki/Single_responsibility_principle)
鉴于 Facade 在设计上可以保护用户免受众多“改变理由”的影响,这两种想法如何协同工作? Facade 的更改理由不是与其实现所依赖的子系统的数量一样多吗?
【问题讨论】:
-
改变外观的众多原因是什么?
-
将在帖子中澄清
标签: oop design-patterns solid-principles single-responsibility-principle facade