设计模式总原则 -- 开闭原则

开闭原则:对扩展开放,对修改关闭。

为了实现软件系统易维护,可复用,必须遵循“开闭原则”。

想要做到“开闭原则”,可以遵循以下五个设计原则:

一、里氏代换原则:任何基类可以出现的地方,子类一定可以代换。

        强调子类尽量不要修改基类的属性和行为,而是去扩展属性和行为,这样子类一定具有基类的全部属性和行为。

二、依赖倒转原则:要依赖于抽象,不要依赖于实现。

        强调要依赖高层次的抽象模块,不要依赖低层次的实现模块。

        宏观的抽象模块比较稳定,不会引起其他模块的大幅变化;另外实现模块发生变化也不会传导到抽象模块。

三、接口隔离原则:提供尽可能小的单独接口,而不是提供大的总结口。

        强调提供多个专门接口,各司其职,可以根据需要定制几个专门接口,满足客户端需求;

       不要提供一个万能的总结口,用不上的也放在那里,形成接口污染。

四、合成/聚合复用原则:要尽量使用合成/聚合,而不是使用继承实现复用。

        抽象类是用来继承的,而具体类不是用来继承的;具体类能用合成/聚合来复用的,尽量不用继承来复用。

        在判断是否使用继承时,在逻辑上要区分B-Has-A,还是B-Is-A:如果B-Has-A,就用合成/聚合复用;如果B-Is-A,就使用继承。

五、迪米特法则:一个模块与尽可能少的模块发生尽可能少的联系。

        强调每个模块要有独立性,对外提供窄的接口;只要接口不变,每个模块的具体实现可以独立的开发和进化。


设计模式6+8+12式:

创建模式:1)简单工厂 2)工厂方法 3)抽象工厂 4)单例模式 5)建造者模式 6)原型模式
结构模式 :1)适配器模式  2)默认适配器 3)合成模式 4)装饰模式 5)代理模式 6)享元模式 7)门面模式   8)桥梁模式
行为模式:1)不变 2)策略 3)模板方法 4)观察者 5)迭代子 6)责任链 7)命令 8)备忘录 9)状态 10)访问者 11)中介者 12)解释器

设计模式总原则 -- 开闭原则_第1张图片
设计模式总原则 -- 开闭原则_第2张图片

你可能感兴趣的:(Java模式)