国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP.NET教程 - asp.net 簡單工廠模式和工廠方法模式之論述

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

2019-09-25 10:42asp.net開發(fā)網(wǎng) ASP.NET教程

簡單工廠模式的最大優(yōu)點在于工廠類中包含了必要的邏輯判斷,根據(jù)客戶端的選擇條件動態(tài)實例化相關(guān)的類,對于客戶端來說,去除了于具體產(chǎn)品的依賴

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

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

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

復(fù)制代碼代碼如下:


namespace FactoryMethodPattern 

public interface IProductDAL 

void Insert(); 


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

復(fù)制代碼代碼如下:


namespace FactoryMethodPattern 

public interface IProductDALFactory 

IProductDAL CreateProductDAL(); 


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

復(fù)制代碼代碼如下:


namespace FactoryMethodPattern 

public class AccessProductDAL:IProductDAL 

#region IProductDAL 成員 
public void Insert() 

Console.WriteLine("AccessProductDAL.Insert"); 

#endregion 


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

復(fù)制代碼代碼如下:


namespace FactoryMethodPattern 

public class AccessProductDALFactory:IProductDALFactory 

#region IProductDALFactory 成員 
public IProductDAL CreateProductDAL() 

return new AccessProductDAL(); 

#endregion 


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

復(fù)制代碼代碼如下:


namespace FactoryMethodPattern 

public class SqlProductDAL:IProductDAL 

#region IProductDAL 成員 
public void Insert() 

Console.WriteLine("SqlProductDAL.Insert"); 

#endregion 


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

復(fù)制代碼代碼如下:


namespace FactoryMethodPattern 

public class SqlProductDALFactory:IProductDALFactory 

#region IProductDALFactory 成員 
public IProductDAL CreateProductDAL() 

return new SqlProductDAL(); 

#endregion 


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

復(fù)制代碼代碼如下:


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


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

復(fù)制代碼代碼如下:


namespace FactoryMethodPattern 

public class BLL 

public void Insert() 

//利用反射實現(xiàn)功能 
IProductDALFactory factory =(IProductDALFactory) Assembly.GetExecutingAssembly().CreateInstance(ConfigurationManager.AppSettings["DALFactory"]); 
IProductDAL pro = factory.CreateProductDAL(); 
pro.Insert(); 



最后在program里面讀取BLL層信息,輸出信息 

復(fù)制代碼代碼如下:


namespace FactoryMethodPattern 

class Program 

static voidMain(string[] args) 

BLL product = new BLL(); 
product.Insert(); 
Console.ReadKey(); 



最后單擊運行顯示的輸出信息為: 

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

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

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

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久中文字幕一区 | 一本色道精品久久一区二区三区 | 国产免费一区二区三区 | 久久伊99综合婷婷久久伊 | 国产精品一区二区三区在线播放 | 毛片免费观看 | 成人午夜影院 | 羞羞视频免费观看网站 | 蜜桃免费一区二区三区 | 亚洲视频一区二区三区 | 国产综合精品一区二区三区 | 毛片首页 | 国产午夜一区二区三区 | 黄色毛片三级 | 91国产精品 | 国产日韩久久 | 亚洲男人的天堂网站 | 在线精品国产一区二区三区 | 骚片网站| 亚洲欧美中文日韩在线v日本 | 日本久久网 | 荷兰欧美一级毛片 | 中国黄色一级 | 久久中文字幕一区二区 | 亚洲伊人久久综合 | 日韩性视频 | 日本黄色一级 | 国产精品69毛片高清亚洲 | 亚洲综合区 | 欧美黄色一区 | 久久99视频 | 国产精品久久久久久久久久久久久 | 日韩在线视频一区 | 国产成人精品一区二区三区视频 | 成人免费福利 | 亚洲精品成人 | 久久综合九色综合欧美狠狠 | 国产精品视频一二三区 | 日本久草 | 久久久久久久久久久美女 | 亚洲激情视频 |