1樓:匿名使用者
優點:· 隔離了具體類的生成,客戶不需要知道怎樣生成了每一個具體產品,什麼時間生版成的。它
權將客戶與具體的類分離,依賴於抽象類,耦合性低。
· 一個產品族中的多個物件被設計成一起工作,它能夠保證客戶端始終只使用一個產品族中的物件。這對一些需要根據當前環境來決定其行為的軟體系統來說,是非常實用的一種設計模式。
· 它有利於更換產品系列,由於客戶端只依賴於抽象類,具體類也被寫到應用程式配置檔案中,更換產品系列時,只須更改一下具體工廠名就行了。
缺點:· 難以支援新種類的產品。難以擴充套件抽象工廠以生產新種類的產品。
這是因為抽象工廠幾口確定了可以被建立的產品集合,支援新種類的產品就需要擴充套件該工廠介面,這將涉及抽象工廠類及其所有子類的改變。
應用情景:
· 同一個產品族的產品在一起使用時,而且它們之間是相互依賴的,不可分離
· 系統需要由相互關聯的多個物件來構成
· 你想提供一組物件而不顯示它們的實現過程,只顯示它們的介面
· 系統不應當依賴某一些具體產品類。
應用場景舉例:
· 遊戲開發中的多風格系列場景
· 系統更改**
· 支援多種觀感標準的使用者介面工具箱(kit)。
2樓:清·靜·心
工廠的思來想就是:我要什麼,就問它自要(呼叫方法返bai回),而不是自己創du建(親自例項化)。
如果需要zhi的東西變了,dao
就不需要重新建立(更改例項化的**),而是仍然問別人要(沒有修改任何**,還是呼叫那個方法,你只要修改那個方法就夠了)
3樓:匿名使用者
用靜態方法出錯bai的原因du:應該是你的程式沒zhi設計好。
工廠模式的dao好處:工廠方法版為系統結構提權供了非常靈活強大的動態擴充套件機制,只要我們更換一下具體的工廠方法,系統其他地方無需一點變換,就有可能將系統功能進行改頭換面的變化。
在現在vs2005開發中還用這種模式嗎:現在不止是vs2005,包括其它的物件導向程式語言,工廠模式用的都很廣範哦
c#程式設計為什麼要使用工廠模式,有什麼好處?
4樓:紅樓花霧
主要是為了:其一,避免**複用;其二,有利於專案的維護;其三,有利於團隊開發。謝謝採納!
備註:所謂「複用」就是**的重複使用!「修改」就是說如果**出現錯誤或者要再新增什麼功能的話,可以直接對工廠模式某個層進行植入**!
5樓:
三層架構或者是工廠模式主要就是實現各功能**分離,方便**的重用增強**的可讀性。比如說資料庫的**和業務邏輯的**分離。
工廠模式有什麼優點
6樓:我不是的
工廠模式的優點是為系統結構提供了靈活的動態擴充套件機制。方便維護。
例如:請朋友去麥當勞吃漢堡,不同的朋友有不同的口味,要每個都記住是一件煩人的事情,如果你採用factory method模式,帶著朋友到服務員那兒,說「要一個漢堡」,具體要什麼樣的漢堡呢,讓朋友直接跟服務員說就行了。
7樓:匿名使用者
工廠模式定義:提供建立物件的介面. 為系統結構提供了非常靈活強大的動態擴充套件機制,只要我們更換一下具體的工廠方法,系統其他地方無需一點變換,就有可能將系統功能進行改頭換面的變化。
c#工廠模式的原理
8樓:匿名使用者
一、 工廠方法(factory method)模式
工廠方法(factorymethod)模式是類的建立模式,其用意是定義一個建立產品物件的工廠介面,將實際建立工作推遲到子類中。
工廠方法模式是簡單工廠模式的進一步抽象和推廣。由於使用了多型性,工廠方法模式保持了簡單工廠模式的優點,而且克服了它的缺點。
在工廠方法模式中,核心的工廠類不再負責所有產品的建立,而是將具體建立工作交給子類去做。這個核心類僅僅負責給出具體工廠必須實現的介面,而不接觸哪一個產品類被例項化這種細節。這使得工廠方法模式可以允許系統在不修改工廠角色的情況下引進新產品。
在factory method模式中,工廠類與產品類往往具有平行的等級結構,它們之間一一對應。
二、 factory method模式角色與結構:
抽象工廠(creator)角色:是工廠方法模式的核心,與應用程式無關。任何在模式中建立的物件的工廠類必須實現這個介面。
具體工廠(concrete creator)角色:這是實現抽象工廠介面的具體工廠類,包含與應用程式密切相關的邏輯,並且受到應用程式呼叫以建立產品物件。在上圖中有兩個這樣的角色:
bulbcreator與tubecreator。
抽象產品(product)角色:工廠方法模式所建立的物件的超型別,也就是產品物件的共同父類或共同擁有的介面。在上圖中,這個角色是light。
具體產品(concrete product)角色:這個角色實現了抽象產品角色所定義的介面。某具體產品有專門的具體工廠建立,它們之間往往一一對應。
9樓:匿名使用者
簡單工廠的方法,一般會傳入建立物件時構造裡所需要的所有屬性。並附帶一個type欄位去判斷需要生產哪個類模型。一般是一個分支結構。
當然簡單工廠返回的是一個父類產品。在呼叫方法的位置對其進行拆解。
抽象工廠同理,返回一個介面型別.可以把介面想成一個廣義上的父類.
10樓:匿名使用者
樓上說得很抽象,但是也是很具體的,想知道例子的話,推薦閱讀《大話設計模式》
很不錯的!
c#工廠模式和簡單工廠模式有什麼不同
11樓:匿名使用者
簡單工廠模式是類的建立模式,又叫做靜態工廠方法模式。就是由一個工廠類根據傳入的參量決定建立出哪一種產品類的例項。一般涉及到三種角色(如下圖):
工廠類:擔任這個角色的是工廠方法模式的核心,含有與應用緊密相關的商業邏輯。工廠類在客戶端的直接呼叫下建立產品物件,它往往由一個具體的類實現。
抽象產品角色:擔任這個角色的類是由工廠方法模式所建立的物件的父類,或她們共同擁有的介面。一般由介面或抽象類實現。
具體產品角色:工廠方法模式所建立的任何對
象都是這個角色的例項,由具體類實現。
簡單工廠模式優缺點:
模式的核心是工廠類,這個類負責產品的建立,而客戶端可以免去產品建立的責任,這實現了責任的分割。但由於工廠類集中了所有產品建立邏輯的,如果不能正常工作的話會對系統造成很大的影響。如果增加新產品必須修改工廠角色的原始碼。
12樓:匿名使用者
多了兩個字···
抽象工廠和簡單抽象工廠基本原理都差不多
簡單抽象工廠可能因為專案需求不同,然後在某一步驟就直接略過了比如有些是這樣的
實體工廠、抽象產品、實體產品
少了一個抽象工廠,因為可能是他的專案不需要抽象工廠
為什麼要使用工廠模式?
13樓:櫻枝殘雪
更加能體現物件導向啊,封裝了建立方法。更加增加了**的重用性
有工廠的廠組詞工廠的廠組詞
廠房 工廠 廠長 車廠 廠子 廠商 廠礦 廠休 出廠 廠規 馬廠 糖廠 廠屋 東廠 廠獄 廠畈 廠衣 紗廠 山廠 茅廠 磚廠 輪廠 軒廠 船廠 閎廠 鐵廠 廠臣 電廠 內廠 邏廠 木廠 外廠 神廠 逛廠 平廠 花廠 牧廠 開廠 做廠 廠甸 1 廠長 廠商 廠子 廠礦 廠休 電廠 藥廠 西廠 磚廠 船...
手機的飛航模式是什麼意思,手機中「飛航模式」什麼意思?有什麼用?
飛航模式是關閉 通訊功能,即不能接打 發簡訊,與基站沒有訊號版聯絡,也不試圖聯絡基權站。因為手機訊號會干擾飛機上的電子裝置,所以飛機上不允許開啟手機,而這種模式下關閉了手機訊號的有關功能,手機可以開著繼續使用其它功能,如檢視 本 欣賞手機上的文章 電影等。所以叫飛航模式。手機的電量很大部分都消耗在訊...
空調中的睡眠模式是什麼意思,空調睡眠模式是什麼意思
空調的 睡眠 模式可以簡單的理解為室內機風機電機低風擋或中風檔運轉,室內機的運轉噪聲比較小的一種狀態模式。其實這種 睡眠 模式也是空調廠家意淫的結果,實際使用當中沒有太大的作用,且也不實用。建議還是根據實際實用需求來設定合適的室內機溫度和風機電機檔速。進入睡眠模式之後再次按這個模式按鍵就可以退出這種...