您好,登錄后才能下訂單哦!
這篇“web抽象工廠模式有哪些優缺點”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“web抽象工廠模式有哪些優缺點”文章吧。
協作
? 通常在運行時刻創建(唯一的)一個C o n c r e t e F a c t r o y類的實例。這一具體的工廠創建具有特定實現的產品對象。為創建不同的產品對象,客戶應使用不同的具體工廠。
原書的翻譯有一點問題,根據以下的英文原文,作者在這里加上了一個修飾詞“唯一的”,這樣更準確。另外這里所謂不同的產品對象應該是另外一組產品對象的意思。
Normally a single instance of a ConcreteFactory class is created at run-time. This concrete factory creates product objects having a particular implementation. To create different product objects, clients should use a different concrete factory.
還有一個問題,這里只是說的是通常怎么怎么樣,并沒有說一定怎么怎么樣。作者認為,這里想表達的是大多數情況下這樣就夠了,而不是說這個唯一性是抽象工廠模式的必要條件。
? AbstractFactory將產品對象的創建延遲到它的C o n c r e t e F a c t o r y子類。
這句話的難點是對于“延遲”這個詞的理解。一般來說創建對象,然后使用對象是正常的步驟。但是使用了抽象工廠以后,Client可以在自己的代碼中使用抽象工廠接口生成對象,然后使用該對象。只有這部分代碼真正被執行的時候,才需要具象工廠類創建對象。這個時機甚至可以在Client代碼發布之后。
效果
A b s t r a c t F a c t o r y模式有下面的一些優點和缺點:
1) 它分離了具體的類 Abstract Factory模式幫助你控制一個應用創建的對象的類。因為一個工廠封裝創建產品對象的責任和過程,它將客戶與類的實現分離。客戶通過它們的抽象接口操縱實例。產品的類名也在具體工廠的實現中被分離;它們不出現在客戶代碼中。
2) 它使得易于交換產品系列 一個具體工廠類在一個應用中僅出現一次 — 即在它初始化的時候。這使得改變一個應用的具體工廠變得很容易。它只需改變具體的工廠即可使用不同的產品配置,這是因為一個抽象工廠創建了一個完整的產品系列,所以整個產品系列會立刻改變。在我們的用戶界面的例子中,我們僅需轉換到相應的工廠對象并重新創建接口,就可實現從M o t i f窗口組件轉換為Presentation Manager窗口組件。
3) 它有利于產品的一致性 當一個系列中的產品對象被設計成一起工作時,一個應用一次只能使用同一個系列中的對象,這一點很重要。而 A b s t r a c t F a c t o r y很容易實現這一點。
4) 難以支持新種類的產品 難以擴展抽象工廠以生產新種類的產品。這是因為
A b s t r a c t F a c t o r y接口確定了可以被創建的產品集合。支持新種類的產品就需要擴展該工廠接口,這將涉及A b s t r a c t F a c t o r y類及其所有子類的改變。我們會在實現一節討論這個問題的一個解決辦法。
前面三個是優點,是使用抽象工程模式可以解決的問題,最后一個是缺點。還是以前文中LED顯示屏為例:如果想另外支持Font類,需要每個工廠類都增加相應的createFont函數。比較麻煩。
關于缺點
任何一種方法都不可能全是優點沒有缺點,否則這個世界上就沒有其它的方法存在了。
如何在優缺點之間平衡,甚至做到揚長避短,才是體現設計者功力的地方。
以上就是關于“web抽象工廠模式有哪些優缺點”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。