人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

一番話:設(shè)計(jì)模式之工廠辦法。

一番話:設(shè)計(jì)模式之工廠辦法。

更新時間:2022-07-15 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

考慮一個問題。我們現(xiàn)在需要一個類的實(shí)例來協(xié)助我們完成某項(xiàng)功能。這在面向?qū)ο蟮拈_發(fā)過程中是常見的。在使用這個類的實(shí)例的時候,我們還需要對他進(jìn)行一些初始化的工作。另外,為了保證我們的代碼具有一定的擴(kuò)展性,我們不想關(guān)心這個類的具體細(xì)節(jié),并且希望在將來問題發(fā)生變化的時候,我們可以不改變我們的代碼就可以改變這個類的行為。
現(xiàn)在問題在于,初始化工作同這個類的具體細(xì)節(jié)密切相關(guān)。類的行為不同,初始化的工作也不同。但是這個類本身只是提供一些輔助性的工作,在它的內(nèi)部,也同樣不關(guān)心外部調(diào)用環(huán)境,也就是我們的代碼中的細(xì)節(jié)。這樣就產(chǎn)生了矛盾:不知道這個類的細(xì)節(jié),我們不能做初始化工作,這個類本身不能做初始化工作。我們?yōu)榱藬U(kuò)展性不想知道類的細(xì)節(jié)。
為了解決這個矛盾,就可以使用設(shè)計(jì)模式中的工廠方法。
這個方法在設(shè)計(jì)模式這本書中是這樣定義的:定義一個用于創(chuàng)建對象的接口,讓子類決定將那個類實(shí)例化。
這樣,對于上述矛盾,我們可以做這樣的設(shè)計(jì):
我們需要的協(xié)助類叫做Product
定義一個類Factory。他有一個方法叫做CreateProduct(),這個方法返回一個Product類的實(shí)例。這個方法是Overridable 的,以便子類覆蓋。
假設(shè)我們的客戶端代碼是ClientFun()方法,他有一個參數(shù),類型為Factory:ClientFun(f as Factory)
我們可以把初始化工作放在CreateProduct方法中。
ClientFun()代碼中,在需要Product類實(shí)例的時候,調(diào)用f.CreateProduct()方法,獲得Product類的實(shí)例。
在需要新的Pruduct實(shí)例的時候,我們可以創(chuàng)建一個Factory的子類,在這個子類中覆蓋CreateProduct方法,返回一個新的Product實(shí)例,并進(jìn)行新的初始化工作。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 邓州市| 旺苍县| 邵武市| 加查县| 滨州市| 雷波县| 双牌县| 伊宁市| 渝北区| 咸丰县| 洞口县| 金沙县| 吉林市| 湟中县| 鄂尔多斯市| 永泰县| 曲麻莱县| 怀化市| 冕宁县| 金川县| 集贤县| 陆川县| 正镶白旗| 阿鲁科尔沁旗| 扎囊县| 廊坊市| 庆元县| 漳平市| 辽阳市| 舒兰市| 秀山| 和平县| 平潭县| 明星| 北流市| 芜湖市| 安龙县| 吉安县| 通辽市| 浠水县| 巴彦淖尔市|