<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

        asp.net 簡單工廠模式和工廠方法模式之論述

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:42:40
        文檔

        asp.net 簡單工廠模式和工廠方法模式之論述

        asp.net 簡單工廠模式和工廠方法模式之論述:簡單工廠模式和工廠方法模式的區(qū)別 簡單工廠模式的最大優(yōu)點(diǎn)在于工廠類中包含了必要的邏輯判斷,根據(jù)客戶端的選擇條件動(dòng)態(tài)實(shí)例化相關(guān)的類,對于客戶端來說,去除了于具體產(chǎn)品的依賴。而工廠方法模式定義了一個(gè)用于創(chuàng)建對象的借口,讓子類決定實(shí)例化哪一個(gè)類,
        推薦度:
        導(dǎo)讀asp.net 簡單工廠模式和工廠方法模式之論述:簡單工廠模式和工廠方法模式的區(qū)別 簡單工廠模式的最大優(yōu)點(diǎn)在于工廠類中包含了必要的邏輯判斷,根據(jù)客戶端的選擇條件動(dòng)態(tài)實(shí)例化相關(guān)的類,對于客戶端來說,去除了于具體產(chǎn)品的依賴。而工廠方法模式定義了一個(gè)用于創(chuàng)建對象的借口,讓子類決定實(shí)例化哪一個(gè)類,

        簡單工廠模式和工廠方法模式的區(qū)別
        簡單工廠模式的最大優(yōu)點(diǎn)在于工廠類中包含了必要的邏輯判斷,根據(jù)客戶端的選擇條件動(dòng)態(tài)實(shí)例化相關(guān)的類,對于客戶端來說,去除了于具體產(chǎn)品的依賴。而工廠方法模式定義了一個(gè)用于創(chuàng)建對象的借口,讓子類決定實(shí)例化哪一個(gè)類,工廠方法是一個(gè)類的實(shí)例化延遲到其子類。其實(shí)多做一些聯(lián)系不難發(fā)現(xiàn):工廠方法模式實(shí)現(xiàn)時(shí),客戶端需要決定實(shí)例化那個(gè)工廠來實(shí)現(xiàn)運(yùn)算類,選擇判斷的問題還是存在的,也即是說,工廠方法吧簡單工廠的內(nèi)部邏輯判斷移到了客戶端代碼來進(jìn)行,我想要加一些功能,本來是需要修改工廠類的,但是現(xiàn)在我們只需要修改客戶端即可。下面是我們老師通過一個(gè)項(xiàng)目來簡單的分析工廠模式的區(qū)別,我大致整理了一下,寫的不好,只作為參考哦。

        現(xiàn)在我們在開發(fā)一些web項(xiàng)目或者WInform項(xiàng)目時(shí),我們都要數(shù)據(jù)庫來管理所有的信息,現(xiàn)在就以我開發(fā)的一個(gè)系統(tǒng)《隴原商城》為例,假如我的系統(tǒng)投入使用了,假如我用的數(shù)據(jù)庫就是Access數(shù)據(jù)庫,但是,過了一段時(shí)間,由于隴原商城貨買的非常好,Access數(shù)據(jù)庫已近不能滿足客戶的需求了,這時(shí)候客戶想換成Sql Server數(shù)據(jù)庫,這樣的話,我們又必須重新編寫代碼,重新?lián)Q成Sql Server數(shù)據(jù)庫來實(shí)現(xiàn),假如又過了一段時(shí)間,Sql Server數(shù)據(jù)庫也不能滿足用戶的的需求,這時(shí)候用戶又想換成Oracel數(shù)據(jù)庫來實(shí)現(xiàn)呢,到這里就不說了,可能我們開發(fā)人員就帶吐血啊,這樣就引起來我們的深思,我們怎么樣做一個(gè)系統(tǒng)可以讓我們不在那么麻煩的修改代碼呢?這就涉及到設(shè)計(jì)模式了,所以就出現(xiàn)了工廠方法模式,下面用工廠方法模式做一個(gè)小實(shí)驗(yàn)來實(shí)現(xiàn)這樣的一個(gè)過程。

        新建一個(gè)控制臺(tái)應(yīng)用程序,命名為FactoryMethodPattern,在控制臺(tái)中添加一個(gè)IProductDAL接口,在里面定義一個(gè)方法,實(shí)現(xiàn)如下:
        代碼如下:


        namespace FactoryMethodPattern
        {
        public interface IProductDAL
        {
        void Insert();
        }
        }

        然后新建接口實(shí)現(xiàn)工廠模式IProductDALFactory,實(shí)現(xiàn)如下:
        代碼如下:

        namespace FactoryMethodPattern
        {
        public interface IProductDALFactory
        {
        IProductDAL CreateProductDAL();
        }
        }

        接下來在項(xiàng)目中添加類AccessProductDAL,繼承自接口IProductDAL,實(shí)現(xiàn)的方法是向控制臺(tái)
        輸出一條信息,實(shí)現(xiàn)如下:
        代碼如下:

        namespace FactoryMethodPattern
        {
        public class AccessProductDAL:IProductDAL
        {
        #region IProductDAL 成員
        public void Insert()
        {
        Console.WriteLine("AccessProductDAL.Insert");
        }
        #endregion
        }
        }

        然后創(chuàng)建一個(gè)AccessProductDAL的工廠類,使他繼承自IProductDALFactory接口,創(chuàng)建一個(gè)方法使其它的返回值為IProductDAL,最后在方法的實(shí)現(xiàn)里面返回實(shí)例化的AccessProductDAL,實(shí)現(xiàn)代碼如下:

        代碼如下:

        namespace FactoryMethodPattern
        {
        public class AccessProductDALFactory:IProductDALFactory
        {
        #region IProductDALFactory 成員
        public IProductDAL CreateProductDAL()
        {
        return new AccessProductDAL();
        }
        #endregion
        }
        }

        接下來寫一下:實(shí)現(xiàn)Sql Server數(shù)據(jù)庫的方法,添加一個(gè)類SqlProductDAL,使其方法
        輸出一句話
        代碼如下:

        namespace FactoryMethodPattern
        {
        public class SqlProductDAL:IProductDAL
        {
        #region IProductDAL 成員
        public void Insert()
        {
        Console.WriteLine("SqlProductDAL.Insert");
        }
        #endregion
        }
        }

        再添加SqlProductDALFactory類,實(shí)現(xiàn)代碼如下:
        代碼如下:

        namespace FactoryMethodPattern
        {
        public class SqlProductDALFactory:IProductDALFactory
        {
        #region IProductDALFactory 成員
        public IProductDAL CreateProductDAL()
        {
        return new SqlProductDAL();
        }
        #endregion
        }
        }

        接下來添加App.config文件,來實(shí)現(xiàn)系統(tǒng)所選擇的數(shù)據(jù)庫是什么數(shù)據(jù)庫,代碼如下:
        代碼如下:

        <?xml version="1.0" encoding="utf-8" ?>
        <configuration>
        <appSettings>
        <add key="DALFactory" value="FactoryMethodPattern.SqlProductDALFactory"/>
        </appSettings>
        </configuration>

        在寫業(yè)務(wù)邏輯層BLL,利用反射獲取app.config中所選擇的路徑是什么。讀取出來
        代碼如下:
        代碼如下:

        namespace FactoryMethodPattern
        {
        public class BLL
        {
        public void Insert()
        {
        //利用反射實(shí)現(xiàn)功能
        IProductDALFactory factory =(IProductDALFactory) Assembly.GetExecutingAssembly().CreateInstance(ConfigurationManager.AppSettings["DALFactory"]);
        IProductDAL pro = factory.CreateProductDAL();
        pro.Insert();
        }
        }
        }

        最后在program里面讀取BLL層信息,
        輸出信息
        代碼如下:

        namespace FactoryMethodPattern
        {
        class Program
        {
        static voidMain(string[] args)
        {
        BLL product = new BLL();
        product.Insert();
        Console.ReadKey();
        }
        }
        }

        最后單擊運(yùn)行顯示的
        輸出信息為:

        現(xiàn)在這個(gè)小系統(tǒng)整體就完成了,現(xiàn)在我要加入Oracel數(shù)據(jù)庫呢?我只要在寫兩個(gè)Oracel數(shù)據(jù)庫的類加到里面,再在app.config中修改一下路徑就OK了。

        1. 總結(jié):工廠方法克服了簡單工廠違背開放-封閉原則的缺點(diǎn),有保持了封裝對象創(chuàng)建過程的優(yōu)點(diǎn),工廠方法模式是簡單工廠模式的進(jìn)一步抽象和推廣,由于使用了多態(tài)性,工廠方法模式保持了了簡單工廠模式的優(yōu)點(diǎn),而且克服了它的缺點(diǎn)。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        asp.net 簡單工廠模式和工廠方法模式之論述

        asp.net 簡單工廠模式和工廠方法模式之論述:簡單工廠模式和工廠方法模式的區(qū)別 簡單工廠模式的最大優(yōu)點(diǎn)在于工廠類中包含了必要的邏輯判斷,根據(jù)客戶端的選擇條件動(dòng)態(tài)實(shí)例化相關(guān)的類,對于客戶端來說,去除了于具體產(chǎn)品的依賴。而工廠方法模式定義了一個(gè)用于創(chuàng)建對象的借口,讓子類決定實(shí)例化哪一個(gè)類,
        推薦度:
        標(biāo)簽: 模式 net 工廠模式
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲av无码专区在线播放 | 美腿丝袜亚洲综合| 色影音免费色资源| 亚洲大片在线观看| 久久免费动漫品精老司机| 日韩亚洲人成在线综合日本| 韩国免费A级毛片久久| 国产成人亚洲精品狼色在线| 一级毛片免费在线| 久久亚洲国产精品五月天婷| 中文字幕在线视频免费| 亚洲精品中文字幕乱码三区 | 久久亚洲日韩看片无码| 59pao成国产成视频永久免费 | 免费看搞黄视频网站| 亚洲男女内射在线播放| 亚洲免费视频网址| 亚洲国产品综合人成综合网站| 在线a免费观看最新网站| 亚洲综合av一区二区三区不卡| 日韩一级视频免费观看| 四虎国产精品免费久久影院| 国产亚洲日韩在线a不卡| 中文字幕亚洲乱码熟女一区二区 | 人妻无码一区二区三区免费| 亚洲男人电影天堂| 成人免费在线观看网站| 一级特黄aaa大片免费看| 亚洲第一区在线观看| 免费黄网站在线看| 亚洲国产乱码最新视频| 国产免费私拍一区二区三区| 最近国语视频在线观看免费播放 | 中日韩亚洲人成无码网站| 日韩成全视频观看免费观看高清| 免费一级全黄少妇性色生活片 | 91麻豆国产免费观看| 亚洲综合精品伊人久久| 国产精品亚洲mnbav网站| 国产偷伦视频免费观看| 亚洲色成人WWW永久在线观看|