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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

23中设计模式之抽象工厂模式

發(fā)布時(shí)間:2024/8/23 asp.net 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 23中设计模式之抽象工厂模式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

抽象工廠模式的定義

定義: 為創(chuàng)建一組相關(guān)或互相依賴的對象提供一個(gè)接口,而且無須制定它們的具體類

抽象工廠模式的實(shí)現(xiàn)

兩個(gè)產(chǎn)品族, 其類圖如下:

?

抽象產(chǎn)品類代碼如下:

?

產(chǎn)品A的1級和2級類代碼如下:

?

產(chǎn)品B與產(chǎn)品A類似

抽象工廠類 AbstractCreator 的職責(zé)是定義 每個(gè)工廠要實(shí)現(xiàn)的功能,其代碼如下:

?

如何創(chuàng)建產(chǎn)品,則是由具體的實(shí)現(xiàn)類來完成的, Creator1 和 Creator2代碼如下:

?

這樣在使用時(shí),我們只要知道它的工廠方法就可以直接產(chǎn)生一個(gè)產(chǎn)品對象,無需關(guān)心它的實(shí)現(xiàn)類

抽象工廠模式的優(yōu)缺點(diǎn)

優(yōu)點(diǎn)如下;

  • 封裝性,每個(gè)產(chǎn)品的實(shí)現(xiàn)類不是高層模塊要關(guān)心的,他只要關(guān)心接口、抽象,不關(guān)心對象是如何創(chuàng)建的. 如何創(chuàng)建由工廠負(fù)責(zé).
  • 產(chǎn)品族內(nèi)的約束為非公開狀態(tài). 抽象工廠模式應(yīng)該有一個(gè)約束, 每生產(chǎn)一個(gè)A產(chǎn)品,同時(shí)生產(chǎn)2個(gè)B產(chǎn)品, 這樣的生產(chǎn)過程對調(diào)用工廠類的高層模塊來說是透明的, 高層模塊不需要知道這個(gè)約束, 只要給出一個(gè)具體的產(chǎn)品即可
  • 缺點(diǎn)如下:

  • 產(chǎn)品族擴(kuò)展非常困難.例如,要增加一個(gè)產(chǎn)品, 抽象工廠類要增加一個(gè)方法, 其所有實(shí)現(xiàn)類都要增加方法, 這嚴(yán)重違反了開閉原則. 修改之后, 只要與這段代碼有關(guān)系,就有可能產(chǎn)生影響
  • 注意: 我們說抽象工廠模式的產(chǎn)品族擴(kuò)展比較困難,但是產(chǎn)品等級擴(kuò)展是非常容易的, 增加一個(gè)產(chǎn)品等級, 只要增加一個(gè)工廠類負(fù)責(zé)新增加出來的產(chǎn)品生產(chǎn)任務(wù)即可.

    抽象工廠模式的使用場景

    一個(gè)對象族(或是一組沒有任何關(guān)系的對象)都有相同的約束,則可以使用抽象工廠模式.

    例如一個(gè)文本編輯器和一個(gè)圖片處理器, 都是軟件實(shí)體, 但是Unix下的文本編輯器和Windows下的文本編輯器雖然功能和界面都相同,但是代碼實(shí)現(xiàn)是不同的,圖片處理器也有類似情況. 也就是具有了共同的約束條件: 操作系統(tǒng). 于是我們可以使用抽象工廠模式, 產(chǎn)生不同操作系統(tǒng)下的編輯器和圖片處理器


    抽象工廠模式是一個(gè)簡單的模式,使用的場景非常多,在軟件產(chǎn)品生產(chǎn)過程中,涉及不同操作系統(tǒng)的時(shí)候,都可以考慮使用抽象工廠模式, 例如一個(gè)應(yīng)用, 需要在三個(gè)不同平臺(Windows, Linux, Android)上運(yùn)行, 就可以通過抽象工廠模式屏蔽掉操作系統(tǒng)對應(yīng)用的影響. 三個(gè)不同操作系統(tǒng)上的軟件功能、應(yīng)用邏輯、UI都應(yīng)該是非常類似的, 唯一不同的是調(diào)用不同的工廠方法,由不同的產(chǎn)品類去處理與操作系統(tǒng)交互的信息

    總結(jié)

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

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