1、工厂模式
通过工厂类,生成一系列同类产品

public Shape getShape(String shapeType) ShapeFactory根据传入的参数,返回不同的Shape对象
2、单例模式
1、单例类只能有一个实例---因此构造方法应该为private。
2、单例类必须自己创建自己的唯一实例---一般在当前类里面自己创建。
3、单例类必须给所有其他对象提供这一实例---因为不能通过构造方法创建对象,所以只能通过类的静态方法获取。

最常用的单例创建方法有
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的环绕操作。

ProxyImage类存放了realImage对象,display方法里面对realImage 仅做一次初始化操作。避免多次读取disk。
网友评论