国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 咸阳市| 松阳县| 中阳县| 岫岩| 泸州市| 扎鲁特旗| 宁明县| 多伦县| 连州市| 尖扎县| 临清市| 云林县| 西乌珠穆沁旗| 象州县| 洛南县| 永善县| 萨迦县| 雅江县| 商丘市| 湘潭市| 涞水县| 耒阳市| 旬阳县| 宁陵县| 乐山市| 阿拉善盟| 蓬溪县| 平湖市| 两当县| 平定县| 泰州市| 福清市| 东平县| 开江县| 芜湖县| 惠安县| 崇州市| 正镶白旗| 淳化县| 榆林市| 根河市|