Design patterns Fa和xE7;是否遵循开闭原则?

Design patterns Fa和xE7;是否遵循开闭原则?,design-patterns,solid-principles,facade,open-closed-principle,Design Patterns,Solid Principles,Facade,Open Closed Principle,开放-关闭原则(截至2013年2月27日)表示它是通过继承实现的 打开/关闭原则的名称有两种使用方式。这两种方法都使用继承来解决明显的困境,但目标、技术和结果是不同的 “两种方式”指的是Meyer的实现继承和更常见的多态扩展 无论如何,我的问题是关于模式,它不使用继承。既然它以简化接口的形式定义了一个抽象,并将其与更复杂的子系统(或库)连接起来,那么这难道不能被看作是开闭原则吗?更具体地说: 子系统(或库)对使用Façade的客户端开放,其接口不允许修改 或者我只是在扩展信息隐藏的边界(这非常接

开放-关闭原则(截至2013年2月27日)表示它是通过继承实现的

打开/关闭原则的名称有两种使用方式。这两种方法都使用继承来解决明显的困境,但目标、技术和结果是不同的

“两种方式”指的是Meyer的实现继承和更常见的多态扩展

无论如何,我的问题是关于模式,它不使用继承。既然它以简化接口的形式定义了一个抽象,并将其与更复杂的子系统(或库)连接起来,那么这难道不能被看作是开闭原则吗?更具体地说:

子系统(或库)对使用Façade的客户端开放,其接口不允许修改


<>或者我只是在扩展信息隐藏的边界(这非常接近于OCP,特别是如果你认为它是)的。

< P>不,外观模式比OCP有不同的关注点。Facade只是一个面向其他类的类。Facade将其客户机与它所面向的类的更改隔离开来,但这不是OCP。OCP是关于单个类如何响应需求的变化。Facade的任何内容都不能引导这些更改。如果客户对门面的要求发生变化,门面也会发生变化。如果Facade面向的任何类都以Facade关心的方式进行了更改,Facade也会这样做


我们可以想象一个版本的Facade是按照OCP设置的-可能是一个Facade,它与客户端的接口是一个接口或抽象类,可以关闭进行修改,但可以扩展以适应新的需求-事实上我一直都是这样实现Facade的,但这并不是对立面的经典描述。

我不明白,
如果客户对立面的要求发生变化,立面也会发生变化。
客户不愿意修改;战略本身也会破裂<代码>如果Facade面向的任何类以Facade关心的方式发生更改,那么Facade也会更改。--但是Facade的隐藏部分会更改。我将Facade视为不稳定(类似私有)子系统的稳定接口。至于必须有一个接口或抽象类,我不确定。这是我最喜欢的正面例子。它不是抽象类/接口。它的公开部分不会很快改变(除了可能添加方法)。我对此考虑了一下,没有想出任何文字来解释我尚未说过的立场。如果我想点什么,我会回来的。