學習筆記
工廠設計模式:解決的問題是專案的例項化問題。提取物件的例項化部分放在乙個工廠中,建立物件的過程與主程式的依賴關係太大,實現建立物件的過程與主程式的解耦。
簡單工廠模式
工廠方法模式
抽象工廠模式
案例:乙個披薩專案的方案設計
披薩專案:要方便披薩品種的擴充套件,要便於維護,要能執行時擴充套件
每個披薩都有四個步驟
開放封閉原:對擴充套件開放,對修改封閉
披薩族的設計:
建立抽象的披薩主類,子類通過機場的方式
披薩工廠的設計:
通過if ..elseif ..else
第乙個變化的地方:建立不同的披薩(披薩的麵糰,醬汁,配料,名字不同)
三個角色
披薩店 披薩工廠 披薩 各種披薩
簡單工廠設計模式: 定義了乙個建立物件的類,由這個類來例項化物件的行為。
最外層 披散商店和披薩的型別
披薩商店通過披薩工廠建立披薩。披薩工廠只有乙個方法就是建立披薩,披薩與自披薩的關係是繼承的關係。
披薩的準備,烘焙,切割,裝箱操作相同,放在披薩主類中。子披薩只是名字不同。
上**:
披薩商店類
ublic class pizzastore
public pizza orderpizza(string type)
}
披薩工廠類:
public class ******pizzafactory else if (type.equals("pepperoni")) else if (type.equals("clam")) else if (type.equals("veggie"))
return pizza;
}}
披薩主類:
abstract public class pizza
public void prepare()
public void bake()
public void cut()
public void box()
public string tostring()
return display.tostring();
}
披薩子類:
public class cheesepizza extends pizza
}
public class clampizza extends pizza
}
2.工廠方法模式
披薩專案的新需求
披薩專案加盟店專案
工廠方法設計模式的設計方案:將披薩專案裡的披薩物件例項化功能抽象成抽象方法,在不同的加盟店具體實現。
工廠方法模式:定義了乙個建立物件的抽象方法,由子類決定要例項化的類,工廠方法模式將物件的例項化推遲到子類。
角色披薩主店 各地加盟店 披薩主類 披薩
披薩主店是抽象類 建立披薩在 各自的加盟店中實現 加盟店中建立各種的披薩 。
披薩主店與加盟店的關係是繼承。 披薩主類與披薩的關係也是繼承
各地的加盟店建立各種各樣的披薩。
上**:
披薩主店是抽象類,建立披薩是抽象方法,具體在各加盟店中實現。
public abstract class pizzastore
}
加盟店 實現披薩主店的建立方法
public class nypizzastore extends pizzastore else if (item.equals("veggie")) else if (item.equals("clam")) else if (item.equals("pepperoni")) else return null;
}}
披薩類
public abstract class pizza
} void bake()
void cut()
void box()
public string getname()
public string tostring()
return display.tostring();
}}
各種披薩類
public class chicagostylecheesepizza extends pizza
void cut()
}
依賴抽象原則
1.變數不要持有具體類的引用
2.不要讓類繼承自具體類,要繼承自抽象類或者介面
3.不要覆蓋基類中已實現的方法
設計模式 工廠設計模式
用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...
設計模式 工廠設計模式
工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...
設計模式 工廠模式(簡單工廠)
一 簡單工廠 定義 簡單工廠模式 factory pattern 屬於類的創新型模式,又叫靜態工廠方法模式 static factorymethod pattern 是通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。特點 工廠類直接實現,乙個產品介面,乙個工廠類可以產生多...