建立型設計模式之簡單工廠模式

2021-12-30 06:43:01 字數 955 閱讀 3897

建立型設計模式之簡單工廠模式:由乙個工廠物件決定建立那一種產品類的例項,根據自變數的不同返回不同的產品類。

解決問題:解決多重簡單物件重複建立的問題,但是不能解決新建產品型別的問題(開閉原則),新增新產品的問題可以在簡單工廠模式再次進行抽象化處理,使用抽象工廠設計模式。

簡單工廠模式參與角色:

工廠類角色:含有應用緊密相關的商業邏輯,工廠類在客戶端的直接呼叫下建立產品物件,往由乙個具體類實現

抽象產品角色:抽象產品由乙個介面或者抽象類實現

具體產品:實現抽象產品介面

工廠類角色:animalfactory

public abstract class animalfactory else if("dog".equals(animaltype))else}}

抽象產品角色:animal

public abstract class animal 具體產品角色:

public class dog extends animal

}public class pig extends animal

}測試**:

animal animal = animalfactory.createanimal("dog");

animal.eat();

animal = animalfactory.createanimal("pig");

animal.eat();

結果:

缺陷:如果需要對產品擴充套件就需要重新更改工廠的**,不符合開閉的原則

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

設計模式 建立型之簡單工廠模式

簡單工廠模式又叫靜態工廠模式。首先,它並不屬於23種gof模式,23種gof中只有工廠模式和抽象工廠模式,但簡單工廠模式是工廠模式和抽象工廠模式的基礎,能更有助於我們理解後面兩者。簡單工廠模式的主要目的是通過不同引數獲取不同類的例項,它的主要實現原理是專門定義乙個工廠類,來建立其他類的例項,被建立的...

建立型設計模式之簡單工廠模式

當某產品有一些種類且種類不是特別多的情況下,可以選擇使用簡單工廠來建立所需產品 物件 而不需要關心具體的建立細節,相對來說便於後面的維護和擴充套件 必須增加產品種類不需要改動太多之前的 這就是乙個簡單工廠簡單實現,有人可能會說不這麼用不行麼,直接new乙個物件還省了很多 其實卻實可以使用設計模式的同...

設計模式 建立型 工廠 簡單工廠模式

動態決定哪個類被例項化,不必事先知道哪個類要被例項化!三 舉例 qq裡面常用發表情的 1 表情 b new smile 這種應該是很熟悉的建立方式 2 表情 b 表情工廠.createbiaoqing 表情內容 四 角色與結構 工廠類角色 creator bqfctory,在creat方法下建立產品...