开闭原则的维基百科页面(截至今天 2013-02-27)说它是通过继承实现的。
开放/封闭原则这个名称有两种使用方式。两种方式都使用继承来解决明显的困境,但目标、技术和结果是不同的。
“两种方式”是指 Meyer 的实现继承和更常见的多态扩展。
无论如何,我的问题是关于不使用继承的外观模式。既然它以简化接口的形式定义了一个对更复杂的子系统(或库)的抽象,难道这也不能被看作是开闭原则吗?进一步来说:
子系统(或库)是开放的,可扩展至使用 Façade 的客户端,其接口对修改是封闭的。
还是我只是在扩展信息隐藏的界限(这非常接近 OCP,特别是如果您将其视为Protected Variations)。