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。