最近在看設計模式之禪,書的內容以講故事的方式介紹了設計模式,強力推薦。
以下是個人對於工廠模式的理解
/*
* 工廠模式
* 優點
* 封裝性好,降低模組耦合。
* 擴充套件性好
*/public class mymain
}// 核心
// 定義乙個抽象的工廠
abstract class abstractfactory
// 定義乙個抽象的產品類
abstract class product ;
// 輸出產品的型別
public abstract void type();
}// 繼承抽象工廠,實現工廠的方法
class factory extends abstractfactory catch (exception e)
return (t) product; }}
// 繼承抽象產品,實現產品的方法
class producta extends product
}class productb extends product
}class productc extends product
}// 擴充套件
// 靜態工廠(簡單工廠),只需要乙個工廠,去除工廠抽象類,所有工廠擴充套件不方便
class staticfactory catch (exception e)
return (t) product; }}
// 多工廠,為每個產品類提供乙個工廠,維護擴充套件都不方便,但結構清晰
// 多工廠抽象
abstract class abstractfactory2
// a產品專屬工廠
class productafactory extends abstractfactory2
}// b產品專屬工廠
class productbfactory extends abstractfactory2
}// 單例工廠,用於管理單例
//特殊的單例產品
class productd;
public void say() ;
}//通過反射方式建立private修飾建構函式的productd
class singletonfactory catch (exception e)
} public static productd getproductd()
}//懶載入工廠
class lazyfactory
productmap.put(producttype, product);
} return product;
} }
設計23式 原型
原型模式 public class mymain class mail implements cloneable override protected mail clone catch exception e return mail public string getreceiver public ...
23種設計模式 工廠模式
作用 實現了建立者和呼叫者分離 詳細分類 簡單工廠模式 工廠方法模式 抽象工廠模式 工廠模式要滿足的原則 開閉原則 對擴充套件開放,對修改關閉 依賴倒置原則 面向介面程式設計,不要面向實現程式設計。迪公尺特法則 只與你的直接朋友交談,不跟陌生人說話。核心本質 例項化物件不適用new,用工廠方法代替 ...
23種設計模式 工廠模式
在軟體系統中,經常面臨著建立物件的工作 由於需求的變化,需要建立的物件的具體型別經常變化。如何應對這種變化?如何繞過常規的物件建立方法 new 提供一 種 封裝機制 來避免客戶程式和這種 具體物件建立工作 的緊耦合?定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠模式使得乙個類的例項化延遲...