发布于 2016-02-13 20:13:22
不,Facade模式解决了与OCP不同的问题。外观只是一个面向其他类的类。Facade将客户端与它前面的类的更改隔离开来,但这不是OCP。OCP是关于各个类如何根据需求的变化而变化的。没有设置任何关于外观的设置来引导这些更改。如果客户端对外观的需求发生变化,则外观也会发生变化。如果Facade前面的任何类以外观所关心的方式进行更改,那么Facade也会改变。
您可以想象一个外观的版本,它是按照OCP设置的--可能是一个外观,它与客户端的接口是一个接口或抽象类,为修改而关闭,但可以扩展到容纳新的需求--事实上,我一直以这种方式实现Facade,但这并不是Facade经典描述的一部分。
https://stackoverflow.com/questions/15121816
复制相似问题