設計模式 4 抽象工廠模式

2021-10-02 05:40:38 字數 2680 閱讀 1883

1.什麼是抽象工廠模式?

1.什麼時候使用抽象工廠模式?

系統的產品有多個產品族,而我們只需要消費其中某乙個產品族中的產品。什麼是產品族?

以手機為例:

3.如何實現抽象工廠模式?

1)定義手機介面

/**

* 定義 手機 介面

*/public

inte***ce

phone

2)定義路由器介面

/**

* 定義 路由器 介面

*/public

inte***ce

router

3)定義小公尺手機類

此類是小公尺手機的具體實現

/**

* 定義小公尺手機類

*/public

class

xiaomiphone

implements

phone

@override

public

void

shutdown()

@override

public

void

sendmessage()

}

4)定義小公尺路由器

此類是小公尺路由器具體實現類。

/**

* 定義小公尺路由器類

*/public

class

xiaomirouter

implements

router

@override

public

void

shutdown()

@override

public

void

openwifi()

}

5)定義華為手機類

此類是華為手機的具體實現類

/**

* 定義華為手機類

*/public

class

huaweiphone

implements

phone

@override

public

void

shutdown()

@override

public

void

sendmessage()

}

6)定義華為路由器類

此類是華為路由器的具體實現類

/**

* 定義華為路由器類

*/public

class

huaweirouter

implements

router

@override

public

void

shutdown()

@override

public

void

openwifi()

}

7)定義抽象工廠類

/**

* 定義 抽象 工廠類

*/public

inte***ce

abstractfactory

8)定義小公尺工廠

/**

* 定義小公尺工廠

*/public

class

xiaomifactory

implements

abstractfactory

@override

public router productrouter()

}

9)定義華為工廠

/**

* 定義華為工廠

*/public

class

huaweifactory

implements

abstractfactory

@override

public router productrouter()

}

10)編寫測試類

/**

* 測試類

*/public

class

test

}

11)執行結果

4.抽象工廠模式優缺點?

1)優點:

1.當乙個產品族(小公尺、華為)被設計成一起工作時,此模式能夠保證始終只使用其一種產品。

2.在使用的時候我們不需要去關心它實現的細節,直接找工廠拿就行。

2)缺點:

1.在工廠中就已經規定了生產哪些產品,擴充套件生產種類麻煩(如小公尺生產家電,那就需要修改工廠**)

2.工廠模式本來挺easy的,但是這種模式更加抽象更加不容易搞懂。

設計模式(4) 抽象工廠模式

工廠類雖然快捷方便和易於擴充套件,但是每乙個具體工廠類只能生產一類產品。如果需要多組的產品類,則系統中就會存在大量的工廠類,會增加系統資源的消耗。抽象工廠模式就可以很好的解決這種問題。1.抽象工廠模式概述 抽象工廠模式為建立一組物件提供了一種解決方案。與工廠方法模式相比,抽象工廠模式中的具體工廠不只...

設計模式(4)抽象工廠模式

之前看到的兩個設計模式,都存在各自的缺陷,簡單工廠模式中,乙個工廠生產多個產品,根據客戶提供的產品名稱建立對應的產品例項 工廠方法設計模式,則在簡單工廠模式的工廠上,建立了許多個工廠類,根據客戶提供的產品名稱選擇可以生產對應產品的工廠進行生產。然而,很多時候,乙個工廠生產的產品並不單一,而是生產一類...

設計模式 工廠模式 抽象工廠模式

建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...