单一职责原则
简述:类只负责一个职责,即只干一件事,提高高内聚来减少引起变化的原因
开放封闭原则
简述:类,模块,函数对外是可以拓展,对修改是关闭的
通过将频繁变动的部分封装在抽象以保证对外不可修改
里氏替换原则
简述:子类可以扩展父类的功能,但不能改变父类原有的功能
子类可以实现父类抽象方法,不可重写父类的非抽象方法(已实现的)
子类可以拓展新方法
重载父类方法时,形参应该更宽泛
实现父类抽象方法时,返回值更严谨
接口隔离原则
简述:保证接口的方法职责不冗余,对接口的职责按需划分为不同的接口
通过对臃肿的类继承的接口进行划分为不同的接口,让每个类只继承其所需要的接口
依赖倒置原则
简述:
高层次的模块不应该依赖低层次的模块,他们都应该依赖于抽象
抽象不应该依赖于具体实现,具体实现应该依赖于抽象
- 一般情况下,高层次的模块使用低层次模块的子类,当低层次模块添加子类时,高层次模块可能受影响
- 依赖倒置原则下高层次模块需要依赖于其对应的抽象,在高层次模块上调用子类实例时,通过抽象的形式调用对应的实例,新增子类时,只要继承抽象即可,减少对低层次模块的依赖
- 举例:工厂模式,通过工厂方法,不用关心类,不用直接实例化类实例,通过工厂方法,直接获取类实例,新增方法,最多修改工厂方法,如果工厂方法使用抽象进行实例化,则不需要调整工厂方法,只要增加类即可