1、单一职责原则
2、开闭原则
对扩展开放,对修改关闭,概念不好理解,应用时尽量预留扩展点
,避免新增功能时对老代码的修改。
在众多的设计原则、思想、模式中,最常用来提高代码扩展性的方法有:
多态、依赖注入、基于接口而非实现编程,以及大部分的设计模式(比如,装饰、策略、模板、职责链、状态等)
。
3、里氏替换原则
子类不能修改父类功能
与多态是有区别的,多态是能力,可以实现多种功能的能力。
父类定义的方法,如银行卡提现不能超出余额,如果子类要扩展一个信用卡可以超出余额的方法,可以通过另外定一个父类方法,而不是修改之前的实现方法。
4、接口隔离原则
接口的概念有两种:api接口或者oop接口
用来判断接口是否满足单一职责,调用者是否只调用一部分接口,或接口的部分功能。
5、依赖倒置原则
spring 控制反转通过DI实现(DI就是不通过new的方式在类中创建需要的对象,而是将依赖的类对象在外部创建好之后,通过构造函数、函数参数等方式传递(或注入)给类使用。)
控制
指的是对程序执行流程的控制,而反转
指的是在没有使用框架之前,程序员自己控制整个程序的执行。在使用框架之后,整个程序的执行流程通过框架来控制。流程的控制权从程序员反转给了框架。
6、kiss原则
保持简单/不要过度设计(使用已有工具类库,且不要用同事不懂的技术)
7、DRY原则
判断是否违背DRY原则,看是否有重复,重复有三种情况:实现逻辑重复、功能重复、代码重复执行。
1)实现逻辑重复,但功能不重复的代码,并不违反 DRY 原则。
2)实现逻辑不重复,但功能重复的代码,也算是违反 DRY 原则。
3)除此之外,代码重复执行也算是违反 DRY 原则。
如何提高代码的可复用性?
减少代码耦合
满足单一职责原则
模块化
业务与非业务逻辑分离
通用代码下沉
应用模板等设计模式