原则
单一职责
一个类只要做好自己的本分就行,比如车,不要又能地上跑,又能水上漂,又能天上飞
依赖倒转
依赖的接口要是顶级接口,这样接口多实现后可以依赖不同的实现类
接口隔离原则
一个类要拥有什么功能就应该去实现特定的接口,不要把多功能混杂在一个接口中
迪米特法则
最少知道原则,一个类应该只对外提供public的接口,局部变量都不是直接朋友,类自己的方法的返回值是直接的朋友
开闭原则
开通扩展,关闭修改。如Java的继承关系,子类在拥有父类的功能的情况下还可以有自己额外的功能,简单来说就是活用接口实现
里氏替换原则
尽量别重写父类的方法,多使用聚合或组合的方式来代替继承关系,因为继承关系实际上增加了类之间的耦合
合成复用原则
尽量使用合成聚合的方式而不是使用继承
23种设计模式
单例模式(饿汉式、懒汉式)、代理模式、工厂模式、外观模式、模板方法模式、备忘录模式、命令模式、桥接模式、适配器模式、责任链模式、迭代模式、组合模式、委派模式、访问模式、享元模式、策略模式、解释器模式、状态模式、观察者模式、中介者模式、装饰者模式、原型模式、建造者模式