設計模式之 抽象工廠模式

2021-10-19 07:20:58 字數 2942 閱讀 8748

設計模式:前輩們對**開發經驗的總結,是解決特定問題的一系列套路。它不是語法規定。而是一套用來提高**可復用性、可維護性、可讀性、穩健性、以及安全性的解決方案

設計模式的本質是物件導向設計原則的實際運用,是對類的封裝性、繼承性和多型性以及類的關聯關係和組合關係的充分理解。

正確使用設計模式具有以下優點:

詳細工廠模式可參考————>簡單工廠模式 中詳細介紹

適用場景:

客戶端(應用層)不依賴於產品類例項如何被建立、實現等細節

強調一系列相關的產品物件(屬於同一產品族) -起使用建立物件需要大量的重複**

提供乙個產品類的庫,所有的產品以同樣的介面出現,從而使得客戶端不依賴於具體的實現

優點:

具體產品在應用層的**隔離,無需關心建立的細節

將乙個系列的產品統一到一起建立

缺點:

規定了所有可能被建立的產品集合,產品簇中擴充套件新的產品困難; 

增加了系統的抽象性和理解難度

理解類圖

下面附上**

/**

* @descrintion:抽象產品工廠

* @version: 1.0

*/public inte***ce iproductfactory

/**

* @descrintion:抽象工廠模式

* @version: 1.0

*/public inte***ce iphoneproduct

路由器

/**

* @descrintion:路由器產品介面

* @version: 1.0

*/public inte***ce irouterproduct

/**

* @descrintion:

* @version: 1.0

*/public class huaweifactory implements iproductfactory

@override

public irouterproduct irouterproduct()

}

/**

* @descrintion:

* @version: 1.0

*/public class xiaomifactory implements iproductfactory

@override

public irouterproduct irouterproduct()

}

/**

* @descrintion:小公尺牌的手機

* @version: 1.0

*/public class xiaomiphone implements iphoneproduct

@override

public void shutdown()

@override

public void callup()

@override

public void sendsms()

}

/**

* @descrintion:小公尺路由器

* @version: 1.0

*/public class xiaomirouter implements irouterproduct

@override

public void shutdown()

@override

public void openwifi()

@override

public void srtting()

}

/**

* @descrintion:華為手機廠商

* @version: 1.0

*/public class huaweiphone implements iphoneproduct

@override

public void shutdown()

@override

public void callup()

@override

public void sendsms()

}

/**

* @descrintion:華為路由器

* @version: 1.0

*/public class huaweirouter implements irouterproduct

@override

public void shutdown()

@override

public void openwifi()

@override

public void srtting()

}

/**

* @descrintion:獲取相應的產品,只需要建立相應的公司工廠,就可以呼叫其公司方法

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

工廠方法模式中工廠只負責同類產品的生產。比如電視機工廠不應該生產汽車。然而現實生活中有很多綜合型的工廠,比如有些電視工廠不僅生產電視機,還會生產與之配套的機頂盒。那麼抽象工廠模式隨之誕生,這種模式將考慮多種型別產品的生產。我們總結下 工廠方法模式只考慮成產同一等級級的產品抽象方法模式考慮生產多等級的...

設計模式之抽象工廠模式

目標 定義了乙個建立一系列相關或相互依賴的介面,而無需指定它們的具體類。用於交換產品系列,如 access sql server 產品的具體類名被具體工廠的實現分離 下面是示例 include include include using namespace std 使用者抽象介面 class ius...

設計模式之抽象工廠模式

定義 abstract factory,提供乙個建立一系列相關或相互依賴物件的介面,而無需制定它們具體的類 場景 有一家生產螺絲螺帽的工廠,螺絲有兩種型號 公的和母的,螺帽也有兩種型號 公的和母的。沒個車間只生產一種螺絲和螺帽。這裡車間就是乙個concretefactory 具體工廠 螺絲和螺帽便是...