abstract factory :抽象工廠,定義建立一系列產品物件的操作介面。
concrete factory :具體的工廠,實現抽象工廠定義的方法,具體實現一系列產品物件的建立。
abstract product :定義一類產品物件的介面。
concrete product :具體的產品實現物件,通常在具體工廠裡面,會選擇具體的產品實現物件,來建立符合抽象工廠定義的方法返回的產品型別的物件。
client :客戶端,主要使用抽象工廠來獲取一系列所需要的產品物件,然後面向這些產品物件的介面程式設計,以實現需要的功能。
具體需求:在人機對戰中有兩種模式:簡單、中級;每種模式都會建立乙個法師英雄、乙個射手英雄,要求設計乙個可擴充套件的程式,實現切換模式,產生不同級別的英雄。
建立抽象的產品:法師、射手
public
inte***ce
mage
public
inte***ce
shooter
建立產品的實現(簡單法師、射手;中級法師、射手)
/**
* 簡單模式下的法師
* * @author: jsk
* @date: 2019/6/1 18:29
*/public
class
smallmage
implements
mage
}/**
* 中級模式下的法師
* * @author: jsk
* @date: 2019/6/1 18:30
*/public
class
bigmage
implements
mage
}/**
* 簡單模式下的射手
* * @author: jsk
* @date: 2019/6/1 18:31
*/public
class
smallshooter
implements
shooter
}/**
* 中級模式下的射手
* * @author: jsk
* @date: 2019/6/1 18:30
*/public
class
bigshooter
implements
shooter
}
建立遊戲模式(抽象工廠)
public
inte***ce
gamefactory
遊戲模式的實現(簡單模式、中級模式)
public
class
******gamefactory
implements
gamefactory
@override
public shooter getshooter()
}public
class
middlegamefactory
implements
gamefactory
@override
public shooter getshooter()
}
客戶端呼叫
public
static
void
main
(string[
] args)
public
static
void
start
(gamefactory gamefactory)
執行結果 建立型模式 工廠模式and抽象工廠模式
意圖 定義乙個建立物件的介面,讓其子類自己決定例項化哪乙個工廠類,工廠模式使其建立過程延遲到子類進行。主要解決 主要解決介面選擇的問題。何時使用 我們明確地計畫不同條件下建立不同例項時。如何解決 讓其子類實現工廠介面,返回的也是乙個抽象的產品。關鍵 建立過程在其子類執行。步驟 建立乙個介面 形狀sh...
建立模式 抽象工廠模式
一 抽象工廠模式說明 抽象工廠模式更符合我們的日常生活和一般規律,所以,應用更加廣泛。下圖舉例說明了抽象工廠模式 抽象工廠模式設計 根據上圖的描述,抽象工廠模式可以設計如下 packagecom.solid.abstractfactory 抽象工廠模式 產品介面一 author solid publ...
建立型模式(抽象工廠模式)
目錄總結 當系統所提供的工廠所需生產的具體產品並不是乙個簡單的物件,而是多個位於不同產品等級結構中屬於不同型別的具體產品時需要使用抽象工廠模式。抽象工廠模式是所有形式的工廠模式中最為抽象和最具一般性的一種形態。抽象工廠模式與工廠方法模式最大的區別在於,工廠方法模式針對的是乙個產品等級結構,而抽象工廠...