設計模式練習(3) 抽象工廠模式

2021-07-26 05:58:11 字數 4411 閱讀 1506

一、題目:

某軟體公司要推出一款新的手機遊戲軟體,該軟體支援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 ...