一、抽象工廠模式是所有形態的工廠模式中最為抽象和最其一般性的。抽象工廠模式可以向客戶端提供乙個介面,使得客戶端在不必指定產品的具體型別的情況下,能夠建立多個產品族的產品物件。
二、模式中包含的角色及其職責
1.抽象工廠(creator)角色
抽象工廠模式的核心,包含對多個產品結構的宣告,任何工廠類都必須實現這個介面。
2.具體工廠(concrete creator)角色
具體工廠類是抽象工廠的乙個實現,負責例項化某個產品族中的產品物件。
3.抽象(product)角色
所有產品簇的父類,它負責描述所有產品簇和以及具體產品的公共介面。
4.抽象產品簇(product family)角色
所有具體產品的父類,它負責描述相應產品簇的公共介面。
4.具體產品(concrete product)角色
抽象模式所建立的具體例項物件
三、簡單實現 1.
抽象工廠(
creator
)角色
public inte***ce fruitfactory
2.
抽象(product
)角色
public inte***ce fruit
3.
抽象產品簇(product family)角色
public abstract void get();
}
public abstract class banana implements fruit
4.具體產品(
concrete product
)角色 public void get()
} public void get()
}
public class northbanana extends banana
}
public class southbanana extends banana
}
5.具體工廠(
concrete creator
)角色
public class northfruitfactory implements fruitfactory
public fruit getbanana()
}
public class southfruitfactory implements fruitfactory
public fruit getbanana()
}
6.測試程式
public class test
}
7.總結
抽象工廠中方法對應產品結構,具體工廠對應產品族。
抽象工廠模式 設計模式3之抽象工廠模式
工廠方法模式中工廠只負責同類產品的生產。比如電視機工廠不應該生產汽車。然而現實生活中有很多綜合型的工廠,比如有些電視工廠不僅生產電視機,還會生產與之配套的機頂盒。那麼抽象工廠模式隨之誕生,這種模式將考慮多種型別產品的生產。我們總結下 工廠方法模式只考慮成產同一等級級的產品抽象方法模式考慮生產多等級的...
設計模式之抽象工廠模式
目標 定義了乙個建立一系列相關或相互依賴的介面,而無需指定它們的具體類。用於交換產品系列,如 access sql server 產品的具體類名被具體工廠的實現分離 下面是示例 include include include using namespace std 使用者抽象介面 class ius...
設計模式之抽象工廠模式
定義 abstract factory,提供乙個建立一系列相關或相互依賴物件的介面,而無需制定它們具體的類 場景 有一家生產螺絲螺帽的工廠,螺絲有兩種型號 公的和母的,螺帽也有兩種型號 公的和母的。沒個車間只生產一種螺絲和螺帽。這裡車間就是乙個concretefactory 具體工廠 螺絲和螺帽便是...