【发布时间】:2013-02-27 20:33:18
【问题描述】:
开闭原则的Wikipedia page(截至今天2013-02-27)说它是通过继承实现的。
开放/封闭原则这个名称有两种使用方式。两种方式都使用继承来解决明显的困境,但目标、技术和结果不同。
“两种方式”是指 Meyer 的实现继承和更常见的多态扩展。
无论如何,我的问题是关于Façade 模式,它不 使用继承。既然它以简化接口的形式定义了一个对更复杂的子系统(或库)的抽象,难道这也不能被看作是开闭原则吗?更具体地说:
子系统(或库)对扩展开放到使用 Façade 的客户端,其接口对修改关闭。
或者我只是在扩展信息隐藏的界限(这非常接近 OCP,尤其是如果您将其视为 Protected Variations)。
【问题讨论】:
标签: design-patterns solid-principles facade open-closed-principle