一、題目:
某軟體公司要推出一款新的手機遊戲軟體,該軟體支援ios、android和windows phone等多個智慧型手機作業系統平台,針對不同的手機作業系統,該遊戲軟體提供了不同的遊戲操作控制類(operationcontroller)和遊戲介面控制類(inte***cecontroller),並提供的相應的工廠類來封裝這些類的初始化過程。該軟體要求具有較好的擴充套件性,以支援新的作業系統平台,為了滿足上述要求,試採用抽象工廠模式對其進行設計。
(1)繪製抽象工廠模式結構檢視
(2)給出例項類圖並實現**。
二、所用模式結構檢視:
三、例項類圖:
四、例項實現**:
(因為區分,所以在類的前面加了gj19)
抽象產品-遊戲介面控制類
package abstractfactorypattern;
/** * 抽象產品-遊戲介面控制類
*@author gong
* */
public
inte***ce
gj19iinte***cecontroller
具體產品-android遊戲介面控制類
package abstractfactorypattern;
/** * 具體產品-android遊戲介面控制類
*@author gong
* */
public
class
gj19androidinte***cecontroller
implements
gj19iinte***cecontroller
}
具體產品-ios遊戲介面控制類
package abstractfactorypattern;
/** * 具體產品-ios遊戲介面控制類
*@author gong
* */
public
class
gj19iosinte***cecontroller
implements
gj19iinte***cecontroller
}
具體產品-windowsphone遊戲介面控制類
package abstractfactorypattern;
/** * 具體產品-windowsphone遊戲介面控制類
*@author gong
* */
public
class
gj19windowsphoneinte***cecontroller
implements
gj19iinte***cecontroller
}
抽象產品-遊戲操作控制類
package abstractfactorypattern;
/** * 抽象產品-遊戲操作控制類
*@author gong
* */
public
inte***ce
gj19ioperationcontroller
具體產品-andriod遊戲操作控制類
package abstractfactorypattern;
/** * 具體產品-andriod遊戲操作控制類
*@author gong
* */
public
class
gj19androidoperationcontroller
implements
gj19ioperationcontroller
}
具體產品-ios遊戲操作控制類
package abstractfactorypattern;
/** * 具體產品-ios遊戲操作控制類
*@author gong
* */
public
class
gj19iosoperationcontroller
implements
gj19ioperationcontroller
}
具體產品-windowsphone遊戲操作控制類
package abstractfactorypattern;
/** * 具體產品-windowsphone遊戲操作控制類
*@author gong
* */
public
class
gj19windowsphoneoperationcontroller
implements
gj19ioperationcontroller
}
抽象工廠–遊戲控制類
package abstractfactorypattern;
/** * 抽象工廠--遊戲控制類
*@author gong
* */
public
inte***ce
gj19gamecontroller
具體工廠–android遊戲控制類
package abstractfactorypattern;
/** * 具體工廠--android遊戲控制類
*@author gong
* */
public
class
androidcontroller
implements
gj19gamecontroller
//android遊戲介面控制
@override
public gj19iinte***cecontroller inte***cecontroller()
}
具體工廠–ios遊戲控制類
package abstractfactorypattern;
/** * 具體工廠--ios遊戲控制類
*@author gong
* */
public
class
ioscontroller
implements
gj19gamecontroller
//ios遊戲介面控制
@override
public gj19iinte***cecontroller inte***cecontroller()
}
具體工廠– windowsphone遊戲控制類
package abstractfactorypattern;
/** * 具體工廠-- windowsphone遊戲控制類
*@author gong
* */
public
class
windowsphonecontroller
implements
gj19gamecontroller
// windowsphone遊戲介面控制
@override
public gj19iinte***cecontroller inte***cecontroller()
}
測試抽象工廠模式
package abstractfactorypattern;
/** * 測試抽象工廠模式
*@author gong
* */
public
class
testabstractfactorypattern
}
五、執行結果: 抽象工廠模式 設計模式3之抽象工廠模式
工廠方法模式中工廠只負責同類產品的生產。比如電視機工廠不應該生產汽車。然而現實生活中有很多綜合型的工廠,比如有些電視工廠不僅生產電視機,還會生產與之配套的機頂盒。那麼抽象工廠模式隨之誕生,這種模式將考慮多種型別產品的生產。我們總結下 工廠方法模式只考慮成產同一等級級的產品抽象方法模式考慮生產多等級的...
3 設計模式 抽象工廠模式
以下內容摘自 在此權作為筆記 上一章我們分析了簡單工廠模式與工廠方法模式,這一章我們來 一下抽象工廠模式。先看菜鳥教程上給的定義。主要解決 主要解決介面選擇的問題。何時使用 系統的產品有多於乙個的產品族,而系統只消費其中某一族的產品。如何解決 在乙個產品族裡面,定義多個產品。關鍵 在乙個工廠裡聚合多...
設計模式3 抽象工廠模式
抽象工廠簡單地說是工廠的工廠,抽象工廠可以建立具體工廠,由具體工廠來產生具體產品。汽車椅子類 public inte ce chair class chaira implements chair class chairb implements chair 汽車發動機類 public inte ce ...