1樓:匿名使用者
簡單工廠
來、工廠,都可以用於源已知某些條件後,對類的選擇,而這些類都是同一父類的子類。這種情況下使用,例如(以下為偽碼):
class 1:baseclass;
baseclass createinstance()使用簡單工廠還是工廠就看具體問題。
使用簡單工廠模式的優點是什麼?
2樓:追尋複製者
簡單工廠
模式的優點:
1、工廠類含有必要的判斷邏輯,可以決定在什麼時候建立哪一個產品類的例項,客戶端可以免除直接建立產品物件的責任,而僅僅「消費」產品;
2、簡單工廠模式通過這種做法實現了對責任的分割,它提供了專門的工廠類用於建立物件。
3、客戶端無須知道所建立的具體產品類的類名,只需要知道具體產品類所對應的引數即可,對於一些複雜的類名,通過簡單工廠模式可以減少使用者的記憶量。
4、通過引入配置檔案,可以在不修改任何客戶端**的情況下更換和增加新的具體產品類,在一定程度上提高了系統的靈活性。
3樓:匿名使用者
防止對資料的破壞,實現多型。
4樓:匿名使用者
可以動態建立物件~~
簡單工廠就是生產物件的工廠
工廠模式的好處是什麼?
5樓:鹽山小夥啊
建立型設計模式有簡單工廠模式,工廠方法模式和抽象工廠模式,工廠模式的好處需要對比獲得。
簡單工廠模式,工廠方法模式和抽象工廠模式都是屬於建立型設計模式,這三種建立型模式都不需要知道具體類。我們掌握一種思想,就是在建立一個物件時,需要把容易發生變化的地方給封裝起來,來控制變化(**變化,封裝**),以適應客戶的變動,專案的擴充套件。用這三種設計模式都可以實現.
下面根據這三者之間的特點,優點,缺點,適用範圍進行比較。
1. 特點
簡單工廠模式:專門定義一個類來負責建立其他類的例項,被建立的例項通常都具有 共同的父類。它又稱為靜態工廠方法模式。
它的實質是由一個工廠類根據傳入的引數,動態決定應該建立哪一個產品類(這些產品類繼承自一個父類或介面)的例項。簡單工廠模式的建立目標,所有建立的物件都是充當這個角色的某個具體類的例項。在這個模式中,工廠類是整個模式的關鍵所在。
它包含必要的判斷邏輯,能夠根據外界給定的資訊,決定究竟應該建立哪個具體類的物件。使用者在使用時可以直接根據工廠類去建立所需的例項,而無需瞭解這些物件是如何建立以及如何組織的。有利於整個軟體體系結構的優化。
工廠方法模式:工廠方法是粒度很小的設計模式,因為模式的表現只是一個抽象的方法。 提前定義用於建立物件的介面,讓子類決定例項化具體的某一個類,即在工廠和產品中間增加介面,工廠不再負責產品的建立,由介面針對不同條件返回具體的類例項,由具體類例項去實現。
工廠方法模式是簡單工廠模式的衍生,解決了許多簡單工廠模式的問題。首先完全實現『開-閉 原則』,實現了可擴充套件。其次實現更復雜的層次結構,可以應用於產品結果複雜的場合。
工廠方法模式是對簡單工廠模式進行了抽象。有一個抽象的factory類(可以是抽象類和介面),這個類將不在負責具體的產品生產,而是隻制定一些規範,具體的生產工作由其子類去完成。在這個模式中,工廠類和產品類往往可以依次對應。
即一個抽象工廠對應一個抽象產品,一個具體工廠對應一個具體產品,這個具體的工廠就負責生產對應的產品。
抽象工廠模式:抽象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的一 種形態。抽象工廠模式是指當有多個抽象角色時,使用的一種工廠模式。
抽象工廠模式可以向客戶端提供一個介面,使客戶端在不必指定產品的具體的情況下,建立多個產品族中的產品物件。它有多個抽象產品類,每個抽象產品類可以派生出多個具體產品類,一個抽象工廠類,可以派生出多個具體工廠類,每個具體工廠類可以建立多個具體產品類的例項。每一個模式都是針對一定問題的解決方案,工廠方法模式針對的是一個產品等級結構;而抽象工廠模式針對的是多個產品等級結果。
go back
2. 優點
簡單工廠模式:工廠類含有必要的判斷邏輯,可以決定在什麼時候建立哪一個產品類的實 例,客戶端可以免除直接建立產品物件的責任,而僅僅"消費"產品。簡單工廠模式通過這種做法實現了對責任的分割。
簡單工廠模式能夠根據外界給定的資訊,決定究竟應該建立哪個具體類的物件。通過它,外界可以從直接建立具體產品物件的尷尬局面中擺脫出來。外界與具體類隔離開來,偶合性低。
明確區分了各自的職責和權力,有利於整個軟體體系結構的優化。
工廠方法模式:工廠方法模式是為了克服簡單工廠模式的缺點(主要是為了滿足ocp)而 設計出來的。簡單工廠模式的工廠類隨著產品類的增加需要增加很多方法(或**),而工廠方法模式每個具體工廠類只完成單一任務,**簡潔。
工廠方法模式完全滿足ocp,即它有非常良好的擴充套件性。
抽象工廠模式:抽象工廠模式主要在於應對「新系列」的需求變化。分離了具體的類,抽 象工廠模式幫助你控制一個應用建立的物件的類,因為一個工廠封裝建立產品物件的責任和過程。
它將客戶和類的實現分離,客戶通過他們的抽象介面操縱例項,產品的類名也在具體工廠的實現中被分離,它們不出現在客戶**中。它使得易於交換產品系列。一個具體工廠類在一個應用中僅出現一次——即在它初始化的時候。
這使得改變一個應用的具體工廠變得很容易。它只需改變具體的工廠即可使用不同的產品配置,這是因為一個抽象工廠建立了一個完整的產品系列,所以整個產品系列會立刻改變。它有利於產品的一致性。
當一個系列的產品物件被設計成一起工作時,一個應用一次只能使用同一個系列中的物件,這一點很重要,而抽象工廠很容易實現這一點。抽象工廠模式有助於這樣的團隊的分工,降低了模組間的耦合性,提高了團隊開發效率。
go back
3. 缺點
簡單工廠模式:當產品有複雜的多層等級結構時,工廠類只有自己,以不變應萬變,就是模式的缺點。因為工廠類集中了所有產品建立邏輯,一旦不能正常工作,整個系統都要受到影響。
系統擴充套件困難,一旦新增新產品就不得不修改工廠邏輯(如果要增加一個產品,則需要修改工廠類,增加if/else分支,或者增加一個case分支),有可能造成工廠邏輯過於複雜,違背了"開放--封閉"原則(ocp).另外,簡單工廠模式通常使用靜態工廠方法,這使得無法由子類繼承,造成工廠角色無法形成基於繼承的等級結構。
工廠方法模式:不易於維護,假如某個具體產品類需要進行一定的修改,很可能需要修改對應的工廠類。當同時需要修改多個產品類的時候,對工廠類的修改會變得相當麻煩(對號入座已經是個問題了)。
抽象工廠模式:抽象工廠模式在於難於應付「新物件」的需求變動。難以支援新種類的產品。
難以擴充套件抽象工廠以生產新種類的產品。這是因為抽象工廠幾乎確定了可以被建立的產品集合,支援新種類的產品就需要擴充套件該工廠介面,這將涉及抽象工廠類及其所有子類的改變。
go back
4. 適用範圍
簡單工廠模式:工廠類負責建立的物件比較少,客戶只知道傳入了工廠類的引數,對 於始何建立物件(邏輯)不關心。
工廠方法模式:當一個類不知道它所必須建立物件的類或一個類希望由子類來指定它所建立的物件時,當類將建立物件的職責委託給多個幫助子類中的某一個,並且你希望將哪一個幫助子類是**者這一資訊區域性化的時候,可以使用工廠方法。
抽象工廠模式:一個系統不應當依賴於產品類例項如何被建立、組合和表達的細節,這對於所有形態的工廠模式都是重要的。這個系統有多於一個的產品族,而系統只消費其中某一產品族。
同屬於同一個產品族的產品是在一起使用的,這一約束必須在系統的設計中體現出來。系統提供一個產品類的庫,所有的產品以同樣的介面出現,從而使客戶端不依賴於實現。
其實,無論是簡單工廠模式、工廠模式還是抽象工廠模式,它們本質上都是將不變的部分提取出來,將可變的部分留作介面,以達到最大程度上的複用。究竟用哪種設計模式更適合,這要根據具體的業務需求來決定。
6樓:笑笑師伯
管理模式的好處是把解決某類問題的方法總結歸納到理論高度,有助於完成任務,有助於作出一個優良的設計方案,達到事半功倍的效果。而且會得到解決問題的最佳辦法。
開發中都用到了那些設計模式?用在什麼場合
7樓:
每個模式都描述了一個
copy在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在重複相同的工作。主要用到了mvc的設計模式。
用來開發jsp/servlet或者j2ee的相關應用。簡單工廠模式等。
什麼是工廠模式,工廠模式優勢是什麼,什麼時候使用?
簡單工廠模式是什麼?
8樓:匿名使用者
專門定義一個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。它又稱為靜態工廠方法模式,屬於類的建立型模式。簡單工廠模式的uml類圖(見右圖)簡單工廠模式的實質是由一個工廠類根據傳入的引數,動態決定應該建立哪一個產品類(這簡單工廠模式是什麼?
特種加工的工藝方法有哪些?適用於何種場合
中文名稱 bai特種加工 du工藝 英文名稱zhi non traditionalmachining 定義1 電火花加工 dao電解回加工 超聲加工 鐳射加答工 電子束加工等非傳統加工方法的總稱。特種加工概述 特種加工不是採用常規的刀具或磨具對工件進行切削加工的工藝方法,而是利用電能 光能 化學能 ...
製冷制熱系統適用於哪些場合,製冷制熱技術未來重點發展方向是什麼?
一般適用於大型公共場所和一些機關單位.使用.現在考慮節能使用空氣能比較多.系統有兩大功能.製冷制熱都可以.製冷制熱技術未來重點發展方向是什麼?製冷制熱技7活必需的保障系統,製冷制熱技術的發展 答 作為生產 王 內22提升電力資源利用率.提高容能源利用效直圍繞幾個核心目標進行。運營管理費用 減少土地佔...
矽肥適用於哪些作物,仲丁靈適用於哪些作物?
仲丁靈即地樂胺 又稱雙丁樂靈 比達寧 硝苯胺靈等,為甲苯胺類除草劑。防除物件及使用方法 地樂胺對一年生種子繁殖的禾本科及闊葉雜草,如馬唐 科 狗尾草 莧 藜等雜草有很好的防效。適用於西瓜 甜瓜 胡蘿蔔 馬鈴薯 西紅柿 育苗韭菜 茴香 菜豆 芹菜 蘿蔔 大白菜 黃瓜等菜田應用。地樂胺應在播種前噴藥處理...