抽象工廠實踐

2021-08-16 02:37:33 字數 1637 閱讀 4104

前面我們介紹了簡單工廠,知道了可以通過簡單工廠來獲得想要的單個產品。那如果我們想要獲的是一系列或者相互依賴物件的物件呢?這個時候就需要乙個功能更加強大的工廠——抽象工廠。

還是通過例子來做說明,這個例子是乙個客戶請求工程師幫忙組裝電腦。同時為了突出學習重點,這個電腦只有cpu 和 主機板。主要是用來學習設計模式嘛!這個工程師有兩套裝機方案供客戶選擇。

由於**全部貼出來,可能較長。為了行文緊湊,便只將與本文學習相關的**貼出來,詳細**見 設計模式**請戳這裡

1. 定義介面

public

inte***ce abstractfactory

public

inte***ce cpuapi

public

inte***ce mainboardapi

2. 根據介面分別實現兩種型號的cpu和主機板,以及供客戶選擇的兩套方案

public

class

amdcpu

implements

cpuapi

@override

public

void

calculate()

}public

class

intelcpu

implements

cpuapi

@override

public

void

calculate()

}public

class

gamainboard

implements

mainboardapi

@override

public

void

installcpu()

}public

class

msimainboard

implements

mainboardapi

@override

public

void

installcpu()

}public

class

schema1

implements

abstractfactory

@override

public mainboardapi createmainboard()

}public

class

schema2

implements

abstractfactory

@override

public mainboardapi createmainboard()

}

3. 實現裝機工程師

public

class computerengineer

public

void

preparehardwares(abstractfactory schema)

}

3. 客戶端呼叫

public

class client

}

簡單工廠生產單個元件,而抽象工廠生成一系列元件,通常元件具有一定的聯絡。

抽象工廠模式的實踐

抽象工廠模式,簡單地說,由幾個類構成 乙個工廠類,乙個或多個抽象類作為基類,多個具體類作為子類,還有乙個介面。工廠類有乙個工廠方法,它接收乙個引數,例如要建立物件的資訊 返回乙個實現了那個介面的物件。該物件的執行時型別則是上述子類中的乙個。這些子類中的每乙個都繼承於那些基類中的乙個,那些基類再分別向...

抽象工廠模式 抽象工廠模式

抽象工廠模式其實是圍繞了乙個超級工廠建立其他的工廠 可參考工廠模式 這個超級工廠又可以想像成是其他工廠的工廠,這種設計模式是一種建立型模式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指出其類。每個生成的工廠都能按照工廠模式提供物件。意圖提供乙個建立一系列相關或相互依賴物件的介面,...

工廠模式 抽象工廠

在看抽象工廠前,我們需要引入兩個概念 1 產品等級結構 2 產品族 我們現在有這樣兩個產品型別 汽車 car 自行車 bike 有兩家公司 寶馬 bmw 奧迪 audi 每乙個廠家都能夠生產這兩種型別的產品 bmw介面 bmwcar,bmwbike audi介面 audicar,audibike 在...