国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

工廠方法模式

2019-11-14 11:53:23
字體:
供稿:網(wǎng)友

前言

話說工廠大家應(yīng)該都熟悉吧,工廠就是大批量生產(chǎn)我們想要的產(chǎn)品,當(dāng)一個商店需要添加一類新產(chǎn)品的時候,我們就要去工廠購買我們的產(chǎn)品,工廠方法模式與生活中的工廠大同小異。

(如有異同請指出)

內(nèi)容

定義:定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類,工廠方法是一個類的實例化延遲到其子類 解釋:其實工廠方法就是簡單工廠的一個工廠方法模式衍生,解決了許多簡單工廠模式的問題。完全實現(xiàn)‘開放-封閉 原則’,實現(xiàn)了可擴展,我們利用工廠來避免修改原有的類

工廠方法模式利用了依賴倒轉(zhuǎn)原則,我們把工廠類抽象出一個勒口,這個接口只有一個方法,就是創(chuàng)建抽象產(chǎn)品的工廠方法,然后所有生產(chǎn)具體產(chǎn)品的方法都去實現(xiàn)這個接口,當(dāng)我們增加產(chǎn)品的時候就不需要去更改原有的工廠類了,直接添加就可以。 如圖:這里寫圖片描述

代碼

代理類

//雷鋒工廠接口, interface IFactory { LeiFeng CreateLeiFeng(); } //學(xué)雷鋒的大學(xué)生工廠 class UndergraduateFactory:IFactory { public LeiFeng CreateLeiFeng() { //調(diào)用子類的方法 return new Undergraduate(); } } //社區(qū)志愿者工廠 class VolunteerFactory:IFactory { public LeiFeng CreateLeiFeng() { return new Volunteer(); } }

客戶端

static void Main(string[] args) { //通過工廠實例化一個大學(xué)雷鋒 IFactory factory = new UndergraduateFactory(); //調(diào)取雷鋒的方法 LeiFeng student = factory.CreateLeiFeng(); student.BuyRice(); student.Swee(); student.Wash();
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新营市| 宁晋县| 出国| 松溪县| 莱芜市| 宣城市| 开封市| 江阴市| 新绛县| 济宁市| 奉化市| 独山县| 桂阳县| 龙里县| 定远县| 胶州市| 鸡东县| 湖北省| 梨树县| 博兴县| 金湖县| 柳林县| 比如县| 光山县| 陆河县| 岱山县| 龙陵县| 大城县| 盐源县| 穆棱市| 姜堰市| 洪雅县| 道孚县| 西乌珠穆沁旗| 无锡市| 中阳县| 禹州市| 托克逊县| 万安县| 陵川县| 贵溪市|