23种设计模式代码和笔记

代码源码:

创建型设计模式:(4种)
1.1简单工厂模式:Factory 根据字符串选择创建不同的形状
shape----CIRCLE <---Factory <---client
----RECTANGLE <---
----SQUARE <---

1.2抽象工程模式:client根据字符串选择Factory,然后Factory根据字符串选择创建不同的对象
shape----CIRCLE <---Factory <---client
----RECTANGLE <---
----SQUARE <---

shape----Paper <---Factory <---client
----Web <---
----Screen <---

2.单例模式:私有的构造方法,调用getInstance()方法获取对象,懒汉式(已创建)和饿汉式(使用时创建)


3.原型模式: 实现Cloneable接口,调用父类的super.clone()方法

4.生成器模式(建造者模式):指挥者包含着构建者的引用,指挥者中完成构建的步骤。

行为型设计模式:(11种)
1.观察者模式:主题中包含所有观察者,当主题改变时,调用观察者的update()

2.策略模式:拥有策略类的引用,调用实现的策略方法(选择排序,冒泡排序)

3.模板模式:父类包含执行步骤的聚合方法,而每个具体步骤的实现可以在子类完成

4.迭代器模式:使用list或者array,使用计数器,实现hasNext(),next()方法

5.命令模式:invoker中含有command的引用,command含有recevier引用,调用invoker
的execute()方法,实际上调用recevier的execute()方法

6.备忘录模式:看管者角色对象用来保存备忘录对象

7.中介者模式:处理不同类之间的所有通信的中介类,调用中介类,由中介类调用方法

8.访问者模式:元素对象接受访问者对象,而访问者对象处理元素对象的操作
从不同的访问者改变元素执行算法

9.状态模式:允许一个对象在其内部的状态改变时改变它的行为

10.责任链模式:每个接受器包含对另一个接收器的引用。如果一个对象不能处理请求,
则它将相同的对象传递给下一个接收者

11.解释器模式:定义出其文法的一种表示,终结者表达式进行递归的调用

结构型模式:(7种)
1.适配器模式:将一个类的接口转换为客户希望的另一个接口
method1:适配器继承被适配的对象,实现目标抽象接口
method2:适配器实现目标结构类,通过构造函数的方式组合被适配的对象

2.桥接模式:抽象部分与实现部分分离,通过组合的方式在将两者关联

3.组合模式:客户端可以像处理简单元素一样处理复杂元素,复杂对象循环遍历执行

4.装饰模式:动态将对象的功能加以扩展,实现被装饰类相同的接口,实现其对应的方法,同时可添加新的功能。

5.门面模式:为子系统中的一组接口提供一个一致的界面,将所有的操作由门面完成

6.享元模式:避免创建大量的对象(享元模式=单例模式+工厂模式)

7.代理模式:含有被代理对象的引用,实际上就是复制并扩展被代理对象的功能。

猜你喜欢

转载自www.cnblogs.com/glblog/p/12058743.html