日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式-Builder和Factory模式区别

發布時間:2023/12/10 asp.net 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式-Builder和Factory模式区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Builder和Factory模式區別

Builder模式結構:

?

Factory模式一進一出,Builder模式是分步流水線作業。
當你需要做一系列有序的工作或者按照一定的邏輯來完成創建一個對象時 Builder就派上用場啦。

我們可以看到,Builer模式與工廠模式是極為相似的,但是他們還是有區別的:

一、從結構上來看,Builder模式比工廠模式多了一個“導演類”的角色。
在Builder模式的類圖中,假如把這個導演類看做是最終調用的客戶端,那么圖中剩余的部分就可以看作是一個簡單的工廠模式了。

?

二、兩者所創建的產品類型完全不一樣。
Factory創建只能是單一的產品(單一在這指它非復合產品),而Builder所創建的產品是復合產品,即產品本身就是由其它部件產品組成的。

舉個例子來說,現在要生產一輛車,假設它就只由這三個部分組成:玻璃、輪子、發動機。
對于工廠模式來說,他創建后返回的,只能是玻璃,或者輪子,抑或是發動機。
不管怎么樣,他不能向客戶返回一輛完整的汽車,要得到一輛完整的汽車,客戶必須自己動手去把這些零部件組裝成一輛汽車。
從這個意義上來講,工廠模式中的工廠,只是充當了零件廠的角色。
那Builder又是如何創建產品的呢?在Builder模式中,一般不需要、也不充許向客戶返回單個部件,他向客戶返回的,僅僅就是一部已經完全組裝好的汽車成品。
對于汽車部件的生產細節,客戶不需要、也不應該讓他們知道。

寫到這,我突然想到了組裝電腦與品牌電腦的差別,組裝電腦雖然價格便宜,且易于改動,但性能沒有保證,另外你自己還必須了解很多有關電腦方面的知識;對于品牌電腦,價格貴這點先暫時不說,關鍵在于他不靈活,但是它的性能可以得到很好保證(由廠家),這易像我們在Builder的系統端保證部件的質量一樣。另外,對于品牌電腦,客戶根本不需要了解多少電腦組裝方面的知識,就可以把一臺電腦抱回家,開機使用了。
那么,在實際運用中,你是喜歡做DIY一族呢,還是喜歡穩定有保證的質量呢?好像在我們編程的這個過程中,我們比較趨向于使用“品牌電腦”。這也就為我們正確使用這兩種設計模式提供了一個方向:如果你要生產的產品是由不同部件組成的,你最好使用Builder模式,而非Factory模式。

三、Builder和Factory的差別,還在于他們所生產部件產品所在產品樹的問題。
這樣說,可能有點拗口。具體來說吧,在工廠模式中,我們知道,一個工廠可以創建多個產品,但一個工廠模式中所創建的某個產品,都會和另一個工廠中所創建的產品在同一棵繼承樹上。
Builder可以創建出可以創建出風馬不相及的產品(雖然我們不這么做),但是Factory模式一般是創建一類產品。

?

轉:https://www.cnblogs.com/yejg1212/archive/2013/02/25/2932526.html

轉載于:https://www.cnblogs.com/jiangtao1218/p/10544474.html

總結

以上是生活随笔為你收集整理的设计模式-Builder和Factory模式区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。