1、工廠模式
通過工廠類,生成一系列同類產(chǎn)品

public? Shape? getShape(String shapeType) ? ?ShapeFactory根據(jù)傳入的參數(shù),返回不同的Shape對象
2、單例模式
1、單例類只能有一個(gè)實(shí)例---因此構(gòu)造方法應(yīng)該為private。
2、單例類必須自己創(chuàng)建自己的唯一實(shí)例---一般在當(dāng)前類里面自己創(chuàng)建。
3、單例類必須給所有其他對象提供這一實(shí)例---因?yàn)椴荒芡ㄟ^構(gòu)造方法創(chuàng)建對象,所以只能通過類的靜態(tài)方法獲取。

最常用的單例創(chuàng)建方法有
1:餓漢式: 靜態(tài)變量聲明 static SingleObject so = new SingleObject();
2:雙檢查(double-check) ?if(so==null){syc(SingleObject.class){if(so==null){so=new SingleObject()}} } ?return so;
3:靜態(tài)內(nèi)部類 或者 枚舉
3、代理模式
如:spring aop,指定的bean(s)的一個(gè)或者多個(gè)方法,在執(zhí)行的時(shí)候,都需要通過代理類做before,after或者around的環(huán)繞操作。

ProxyImage類存放了realImage對象,display方法里面對realImage 僅做一次初始化操作。避免多次讀取disk。