1、单一职责原则:干好自己擅长的事,不要做多面手
2、开闭原则:可以增加新的东西,但不要修改已经写好的东西
3、里氏替换原则:子类可以重写父类中非抽象的方法;重写方法的形参必须比父类宽松或一样;重写方法的返回值必须比父类更加严格或一样
4、依赖倒置原则:高层代码不应依赖于底层,而应该依赖于抽象,修改时只需替换实现类即可
5、接口隔离原则:接口的粒度要小,不要什么功能都往里丢
6、合成复用原则:优先考虑对象组合来实现功能,将方法所属的类的对象作为形参传入或者作为成员变量在初始化时传入
7、迪米特法则:一个类尽可能跟其他类的交互越少越好