首先分清接口,接口实现类(父类,子类),使用实现类的逻辑处理类,使用逻辑处理类的客户端类
1.单一职责
这个最简单,分为 类单一 和方法单一,就是一个类只做一件事,或者一个方只做一件事
2.接口隔离原则
为了避免一个接口有多个方法导致需要的接口实现类继承了实现了不必要的方法,所以应该把接口拆开,用多个接口实现类去继承实现接口,从而让逻辑处理类继承拿到接口实现类的所有方法没有多余的。
3.依赖倒转原则
为了避免添加功能而修改大部分代码,可以写个一个接口让实现类去继承它的方法,使用实现类的逻辑处理类只依赖接口调用方法,如果需要添加实现,使用类的代码不需要改变,在客户端使用的时候去添加不同的实现类;
4.里氏替换原则
为了避免子类去重写父类方法,导致程序意外出错,里氏替换的原则要求我们把子类提升到和父类一样的位置 共同去继承同一个接口,进行不同的实现,如果实在需要父类方法,通过依赖,聚合,组合的方式使用父类类,而客户端可以毫不察觉;
5.开闭原则
设计模式的最终目的,其他的原则也是为开闭原则做服务的----对拓展开放
6.迪米特法则
为了避免使用一个类时还逻辑处理类需要在方法里new出来,迪米特法则要求我们,逻辑处理类需要的类应该尽量都是依赖,聚合,组合,继承来的类,而不是在方法里直接new的类,如果有这样的类尽量看看能不能实现在依赖,聚合,组合,继承来的类里,不要放在逻辑处理类中;
1.依赖
一个类用到了另一个类就说这个类依赖另一个类
2.泛化
一个类继承类另一个类,就说这个类和另一个类是泛化关系
3.实现
一个类实现了一个接口 ,就说这个类和接口是实现关系
4.关联
依赖关系的特例,如果一个类依赖另一个类就说这个类单向关联了另一个类
5,聚合
关联关系的特例,一个类关联了另一个类,但量个类可以独立存在
6,组合
一个类里必须要有另一个类才能实现即成员变量确定了另一个类的对象



