设计模式个人笔记

1.单例模式(singleton pattern)

描述:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例

笔记:通过改变构造函数实现

2.工厂模式(factory pattern)

描述:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类

笔记:把具体实现下移至子类。(依赖倒置原则)

示例:JDBC。根据一个名字就改变链接数据库的方式

3.策略模式(strategy pattern)

描述:定义一组算法,将每个算法都封装起来,并且使它们之间可以互换

笔记:算法类实现接口,策略类定义好调用方式(不变)。经常和工厂模式混合使用,来控制具体调用哪个策略

4.装饰模式(decorator pattern)

描述:动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活

笔记:通过构造函数指定成员变量的方式,可以重复嵌套装饰类,并通过重写方法的方式不断循环调用被嵌套的重写方法。比起爆炸式的重复继承,这种装饰模式要方便灵活的多。(PS.继承超过2层以上,就要考虑是不是设计出了问题了)

优点:有效的把类的核心职责和装饰功能区分开了。而且可以去除相关类中的重复的装饰逻辑

5.代理模式(proxy pattern)

描述:为其他对象提供一种代理以控制对这个对象的访问

笔记:通过实现接口,构造函数指定被代理类,执行被代理类的方法来实现。动态代理模式是AOP(切面编程)的核心机制。

原文地址:https://www.cnblogs.com/xujanus/p/5534042.html