1、单一职责原则
一个类的功能要单一,只做与它相关的事情。在类的设计过程中要按职责进行设计,彼此保持相互独立。这是因为,每一个职责都存在变化的可能性。一个类如果有一种以上的职责,这些职责就耦合在一起了,会有两种影响:
一是一种职责发生变化时,修改代码可能会影响其他的职责,二是多种职责耦合在一起,会影响代码的复用性。
价值:
•降低类的复杂度:一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多,降低出错的可能性。
•提高代码可读性
•提高系统的可维护性
•变更会引起风险。但变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。
2、开放封闭原则
对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。(派生出子类并对基类进行扩展)
对修改封闭,意味着类一旦设计完成,就可以独立其工作,而不要对类进行任何修改。(不修改类的接口方法或能被外部调用的共用方法的结构,内部代码可以重构的)
价值:
•降低代码的耦合度,保证设计的灵活性,使得代码更易于维护
•减少原有代码的修改次数,使得整个系统更加稳定。
3、里氏替换原则
上世纪80年代,由麻省理工学院的Liskov女士(Barbara Liskov)提出。
含义:子类可以扩展父类的功能,但不要改变父类原有的功能。(扩展意味着新增功能,非重写。如果父类有一方法func1(),返回两个整数的相加,子类需要一个相减的方法时不要重写func1()而是新增方法func2()
价值:
•遵循里氏替换原则,尽量避免子类重写父类的方法.但并不是绝对的,只是尽量避免而已。某些场景下子类确实是需要重写父类的方法时可以绕过此原则。
4、依赖倒置原则
含义:面向接口编程,而不是针对具体实现类编程。
价值:
•降低耦合,减少错误。
•提高并行开发度。
5、接口隔离原则
含义:类不应该依赖它不需要的接口,即尽量细化接口,使每个接口中的方法尽量少。在程序设计中,依赖几个专用的接口要比依赖一个综合的接口更灵活。
简单来说就是接口的粒度不要设计得太粗,尽量细化。
价值:
•通过分散定义多个接口,可以防止需求变更的扩散,提高系统的灵活性和可维护性。












网友评论