工廠模式

書中介紹了三種工廠,簡單工廠、工廠方法、抽象工廠。


1、簡單工廠:不是一個設計模式,反而比較像是一種編程習慣。


這是我在網上找的圖片,雖然不是類圖,但是簡潔明瞭。如果我們把方法聲明成靜態的,也就變成了靜態工廠,易於使用但是不宜與擴展。


2、工廠方法:定義了一個創建對象的接口,但由子類決定要實例化的類是哪一個。工廠方法讓類把實例化對遲到子類。

public abstract class PizzaStore {

public Pizza orderPizza(String type){

Pizza p=null;

p=createPizza(type);

p.init();

return p;

}

   public abstract Pizza createPizza(String type);//工廠方法

}

public class NYPizzaStore extends PizzaStore {

public Pizza createPizza(String type) {//這裏用new創建具體類

Pizza p=null;

if(type.equals("clam")){

p=new ClamPizza();

}

return p;

}

}

public class Test {

public static void main(String[] args) {

PizzaStore ps=new NYPizzaStore();

Pizza p=ps.orderPizza("clam");

}

}

這個工廠方法很適合創建遊戲角色對象(比如子彈 、主角、敵人、擺放物品等等),並且能爲對象做一些初始化的工作。只是建立一個子類就夠了。


3、抽象工廠:提供一個接口,用於創建相關或依賴對象的家族,而不需要明確指定具體類。

抽象工廠真的沒用過啊。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章