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

2021-08-28 05:27:05 字數 2208 閱讀 6980

抽象工廠模式(abstract factory pattern)是圍繞乙個超級工廠建立其他工廠。該超級工廠又稱為其他工廠的工廠。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。

在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指定它們的類。每個生成的工廠都能按照工廠模式提供物件。

介紹主要解決:主要解決介面選擇的問題。

何時使用:系統的產品有多於乙個的產品族,而系統只消費其中某一族的產品。

如何解決:在乙個產品族裡面,定義多個產品。

關鍵**:在乙個工廠裡聚合多個同類產品。

優點:當乙個產品族中的多個物件被設計成一起工作時,它能保證客戶端始終只使用同乙個產品族中的物件。

缺點:產品族擴充套件非常困難,要增加乙個系列的某一產品,既要在抽象的 creator 裡加**,又要在具體的裡面加**。

使用場景:1、qq 換**,一整套一起換。 2、生成不同作業系統的程式。

//新建抽象工廠類

package com.xjh.demo.designpattern.pattern4;

public abstract class abstractfactory

//男生工廠

package com.xjh.demo.designpattern.pattern4;

public class boyfactory extends abstractfactory

@override

public skin createskin()

@override

public foot createfoot()

}

//女生工廠

package com.xjh.demo.designpattern.pattern4;

public class girlfactory extends abstractfactory

@override

public skin createskin()

@override

public foot createfoot()

}

//臉部顏色

package com.xjh.demo.designpattern.pattern4;

public abstract class face

//腳部顏色

package com.xjh.demo.designpattern.pattern4;

public abstract class foot

//**顏色

package com.xjh.demo.designpattern.pattern4;

public abstract class skin

package com.xjh.demo.designpattern.pattern4;

public class boyface extends face

}

package com.xjh.demo.designpattern.pattern4;

public class boyfoot extends foot

}

package com.xjh.demo.designpattern.pattern4;

public class boyskin extends skin

}

package com.xjh.demo.designpattern.pattern4;

public class girlface extends face

}

package com.xjh.demo.designpattern.pattern4;

public class girlfoot extends foot

}

package com.xjh.demo.designpattern.pattern4;

public class girlskin extends skin

}

package com.xjh.demo.designpattern.pattern4;

public class test

}

(四) 設計模式之抽象工廠模式

前面已經說過了簡單工廠模式和普通工廠模式 鏈結 前沿 抽象工廠就是普通工廠模式的加強版本 優點 當乙個產品族中的多個物件被設計成一起工作時,它能保證客戶端始終只使用同乙個產品族中的物件。使用場景 1 qq 換 一整套一起換。2 生成不同作業系統的程式。前提 乙個總的衣櫃,總衣櫃裡面又分為7個衣櫃 分...

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

前面說了兩種設計模式,簡單工廠模式和工廠模式。簡單工廠模式是定義乙個工廠類,工廠類根據呼叫時傳入的引數選擇建立哪乙個類的例項。工廠模式是為每個類建立乙個工廠,而這些工廠都實現了同乙個工廠,客戶端在呼叫的時候自己選擇某個類對應的工廠去建立某個類的例項。那抽象工廠又是什麼呢?抽象工廠在工廠模式的基礎上引...

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

有時候我們需要乙個工廠可以提供多個產品物件,而不是單一的產品物件。為了更清晰地理解工廠方法模式,這裡先引入兩個概念 產品等級結構 即產品的繼承結構,比如乙個抽象類是電視機,其子類有海爾電視機 海信電視機 tcl電視機,則抽象電視機與具體品牌的電視機之間構成了乙個產品等級結構,抽象電視機是父類,而具體...