工作中经常用到的一些设计模式总结
2017-09-06 本文已影响0人
This4U
1、工厂模式
通过工厂类,生成一系列同类产品
![](https://img.haomeiwen.com/i5417071/099fd5c328ac6e4e.png)
public Shape getShape(String shapeType) ShapeFactory根据传入的参数,返回不同的Shape对象
2、单例模式
1、单例类只能有一个实例---因此构造方法应该为private。
2、单例类必须自己创建自己的唯一实例---一般在当前类里面自己创建。
3、单例类必须给所有其他对象提供这一实例---因为不能通过构造方法创建对象,所以只能通过类的静态方法获取。
![](https://img.haomeiwen.com/i5417071/172ab4697c2fef3b.png)
最常用的单例创建方法有
1:饿汉式: 静态变量声明 static SingleObject so = new SingleObject();
2:双检查(double-check) if(so==null){syc(SingleObject.class){if(so==null){so=new SingleObject()}} } return so;
3:静态内部类 或者 枚举
3、代理模式
如:spring aop,指定的bean(s)的一个或者多个方法,在执行的时候,都需要通过代理类做before,after或者around的环绕操作。
![](https://img.haomeiwen.com/i5417071/c619222a58b38bd4.png)
ProxyImage类存放了realImage对象,display方法里面对realImage 仅做一次初始化操作。避免多次读取disk。