一、开闭原则---接口
对扩展开放,对修改关闭
即通过增加功能的形式修改原来的功能,而不修改原有的代码:基于接口编程,基于切片编程都遵循的这个规则,
二、依赖倒置原则---接口
面向接口编程,不要面向实现编程
降低程序的耦合度-----解耦合
三、接口隔离原则---接口
为各个类建立他们的专用接口----提高内聚性,降低耦合度
四、里氏替换原则---继承
继承必须确保父类所拥有的性质在子类中仍然成立
即子类可以扩展父类的功能,但是不要改变父类原有的功能,在子类中尽量添加新的方法完成新的功能,不要将父类的方法改掉
尽量少重写父类方法
五、迪米特法则---继承
只和朋友交谈,不和陌生人说话
单一继承,关系不传递
A---B----C A可以和B单独联系,B可以和C单独联系,但是A和C不能单独联系,需要B作为中间传递者
增加了系统复杂性,但模块更独立,降低耦合度
六、单一职责原则
一个方法只做一件事,每个类单一---原子性
粗粒度---做的功能多,容易造成响应某个功能的冗余---提高内聚性,降低耦合度
七、合成复用原则
优先使用组合或聚合,其次考虑继承关系
组合:在一个类中声明另一个类的对象,并通过构造方法传入到此类中
聚合:包含关系,整体和部分的关系