【亲身经历】
无规矩不成方圆
设计模式 - 搜狗百科 https://baike.sogou.com/v123729.htm?fromTitle=设计模式
为什么要提倡"Design Pattern"呢?根本原因是为了代码复用,增加可维护性。那么怎么才能实现代码复用呢?面向对象有几个原则:开闭原则(Open ClosedPrinciple,OCP)、里氏代换原则(Liskov Substitution Principle,LSP)、依赖倒转原则(Dependency Inversion Principle,DIP)、接口隔离原则(Interfce Segregation Principle,ISP)、合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)、最小知识原则(Principle of Least Knowledge,PLK,也叫迪米特法则)。开闭原则具有理想主义的色彩,它是面向对象设计的终极目标。其他几条,则可以看做是开闭原则的实现方法。
设计模式就是实现了这些原则,从而达到了代码复用、增加可维护性的目的。
开闭原则
此原则是由"Bertrand Meyer"提出的。原文是:"Software entities should be open for extension,but closed for modification"。就是说模块应对扩展开放,而对修改关闭。模块应尽量在不修改原(是"原",指原来的代码)代码的情况下进行扩展。
https://github.com/alibaba/p3c/blob/master/阿里巴巴Java开发手册(详尽版).pdf
1.【推荐】系统设计时,注意对扩展开放,对修改闭合。 说明:极端情况下,交付的代码都是不可修改的,同一业务域内的需求变化,通过模块或类的 扩展来实现。