一、常用设计原则
- 开闭原则
对扩展开发,对修改关闭。 - 里氏代换原则
任何基类可以出现的地方,子类一定可以出现,多使用多态的方式。 - 依赖倒转原则
尽量多依赖于抽象类或接口而不是具体实现类,对子类具有强制性和规范性。 - 接口隔离原则
尽量多使用小接口而不是大接口,避免接口的污染,降低耦合度。 - 迪米特法则(最少知道原则)
一个实体应当尽量少与其他实体之间发生相互作用,使系统功能模块相对独立。 - 合成复用原则
尽量多使用合成/聚合的方式,而不是继承的方式。
二、常用设计模式
- 单例设计模式
分为饿汉式和懒汉式,懒汉式需要对多线程进行同步处理。 - 普通工厂模式
建立一个工厂类,对实现了同一接口的不同实现类进行实例的创建。 - 多个工厂方法模式
- 静态方法工厂模式
将多个工厂方法模式中工厂类中的方法改为静态。 - 抽象工厂模式
- 装饰器模式
装饰器模式就是给一个对象动态的增加一些新功能,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。
- 代理模式
代理模式就是找一个代理类替原对象进行一些操作。装饰器模式和代理模式的区别:
装饰器模式将被代理对象作为参数传递给装饰器的构造方法,代理模式直接在代理类中创建被代理对象。 - 模板方法模式
模板方法模式主要指一个抽象类中封装了一个固定流程,流程中的具体步骤可以由不同子类进行不同的实现,通过抽象类让固定的流程产生不同的结果。(图中斜体表示抽象)