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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式之创建类模式PK

發(fā)布時間:2024/8/23 asp.net 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式之创建类模式PK 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

創(chuàng)建類模式包括:

  • 工廠方法模式
  • 建造者模式
  • 抽象工廠模式
  • 單例模式
  • 原型模式
  • 創(chuàng)建類模式能夠提供對象的創(chuàng)建和管理職責(zé).

    其中單例模式和原型模式非常容易理解, 單例模式是要保持在內(nèi)存中只有一個對象,原型模式是要求通過復(fù)制的方式產(chǎn)生一個新的對象,這兩個不容易混淆.

    工廠方法模式VS建造者模式

    工廠方法模式注重的是整體對象的創(chuàng)建方法,而建造者模式注重的是部件構(gòu)建的過程,旨在通過一步一步的精確構(gòu)造創(chuàng)建出一個復(fù)雜的對象.

    工廠方法模式和建造者模式的區(qū)別:

  • 意圖不同. 在工廠方法模式中, 我們關(guān)注的是產(chǎn)品的整體,無需關(guān)心產(chǎn)品的各部分是如何創(chuàng)建出來的; 但是在建造者模式中,一個具體產(chǎn)品的產(chǎn)生是依賴各個部件的產(chǎn)生以及裝配順序,它關(guān)注的是"由零件一步一步地組裝出產(chǎn)品對象". 簡單地說, 工廠模式是一個對象創(chuàng)建的粗線條應(yīng)用,建造者模式則是通過細(xì)線條勾勒出一個復(fù)雜對象,關(guān)注的是產(chǎn)品組成部分的創(chuàng)建過程.
  • 產(chǎn)品的復(fù)雜度不同. 工廠方法模式創(chuàng)建的產(chǎn)品一般都是單一性質(zhì)產(chǎn)品,而建造者模式創(chuàng)建的則是一個復(fù)合產(chǎn)品,它由各個部件復(fù)合而成,不見不同產(chǎn)品對象當(dāng)然不同.
  • 在具體應(yīng)用中如何選擇呢?這取決于我們在做系統(tǒng)設(shè)計(jì)時的意圖, 如果需要詳細(xì)關(guān)注一個產(chǎn)品不見的生產(chǎn)、安裝步驟,則選擇建造者 ,否則選擇工廠方法模式

    抽象工廠模式VS建造者模式

    抽象工廠模式實(shí)現(xiàn)對產(chǎn)品家族的創(chuàng)建, 一個產(chǎn)品家族是這樣一系列產(chǎn)品: 具有不同分類維度的產(chǎn)品組合,采用抽象工廠模式不需要關(guān)心構(gòu)建過程,只關(guān)心什么產(chǎn)品由什么工廠生產(chǎn)即可. 而建造者模式則是要求按照指定的藍(lán)圖建造產(chǎn)品, 它的主要目的是通過組裝零配件而產(chǎn)生一個新產(chǎn)品,兩者的區(qū)別還是比較明顯的.

    抽象工廠模式比建造者模式的尺度要大, 它關(guān)注產(chǎn)品整體,而建造者模式關(guān)注構(gòu)建過程, 因此建造者模式可以很容易的構(gòu)建出一個嶄新的產(chǎn)品, 只要導(dǎo)演類提供具體的制作流程.

    如果希望屏蔽對象的創(chuàng)建過程,只提供一個封裝良好的對象,可以選擇抽象工廠模式.而建造者模式可以用在構(gòu)件的裝配方面,如通過裝配不同的組件或者相同組件的不同順序,可以產(chǎn)生一個新的 對象, 它可以產(chǎn)生一個非常靈活的架構(gòu),方便的擴(kuò)展和 維護(hù)系統(tǒng)

    工廠方法模式VS抽象工廠模式

    工廠方法模式和抽象工廠模式都實(shí)現(xiàn)了對象的創(chuàng)建, 都是不需要關(guān)心其構(gòu)建過程的.

    工廠方法模式中我們把生成產(chǎn)品類的時間延遲,就是通過對應(yīng)的工廠類來生成對應(yīng)的產(chǎn)品類,在這里我們就可以實(shí)現(xiàn)“開發(fā)-封閉”原則,無論加多少產(chǎn)品類,我們都不用修改原來類中的代碼,而是通過增加工廠類來實(shí)現(xiàn)。但是這還是有缺點(diǎn)的,如果產(chǎn)品類過多,我們就要生成很多的工廠類。假如我們要實(shí)現(xiàn)的產(chǎn)品接口不止一個,也就是有多個產(chǎn)品接口,不同產(chǎn)品接口有對應(yīng)的產(chǎn)品族。什么是產(chǎn)品族呢?簡單的理解就是,不同牌子產(chǎn)的車?yán)锩鏁信苘囶愋?#xff0c;家庭類型,商用類型等的車,不同牌子的車的跑車類型的車可以組成一個產(chǎn)品族。對于這種情況我們可以采用抽象工廠模式。

    抽象工廠模式中我們可以定義實(shí)現(xiàn)不止一個接口,一個工廠也可以生成不止一個產(chǎn)品類,抽象工廠模式較好的實(shí)現(xiàn)了“開放-封閉”原則,是較為抽象,并具一般性的模式。我們在使用中要注意使用抽象工廠模式的條件。

    總結(jié)

    以上是生活随笔為你收集整理的设计模式之创建类模式PK的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。