工廠設計模式

2021-09-12 07:36:06 字數 2393 閱讀 5985

學習筆記

工廠設計模式:解決的問題是專案的例項化問題。提取物件的例項化部分放在乙個工廠中,建立物件的過程與主程式的依賴關係太大,實現建立物件的過程與主程式的解耦。

簡單工廠模式

工廠方法模式

抽象工廠模式

案例:乙個披薩專案的方案設計

披薩專案:要方便披薩品種的擴充套件,要便於維護,要能執行時擴充套件

每個披薩都有四個步驟

開放封閉原:對擴充套件開放,對修改封閉

披薩族的設計:

建立抽象的披薩主類,子類通過機場的方式

披薩工廠的設計:

通過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 是通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。特點 工廠類直接實現,乙個產品介面,乙個工廠類可以產生多...