国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
當前位置: 首頁 - 科技 - 知識百科 - 正文

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

來源:懂視網 責編:小采 時間:2020-11-27 22:42:40
文檔

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

asp.net 簡單工廠模式和工廠方法模式之論述:簡單工廠模式和工廠方法模式的區別 簡單工廠模式的最大優點在于工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態實例化相關的類,對于客戶端來說,去除了于具體產品的依賴。而工廠方法模式定義了一個用于創建對象的借口,讓子類決定實例化哪一個類,
推薦度:
導讀asp.net 簡單工廠模式和工廠方法模式之論述:簡單工廠模式和工廠方法模式的區別 簡單工廠模式的最大優點在于工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態實例化相關的類,對于客戶端來說,去除了于具體產品的依賴。而工廠方法模式定義了一個用于創建對象的借口,讓子類決定實例化哪一個類,

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

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

新建一個控制臺應用程序,命名為FactoryMethodPattern,在控制臺中添加一個IProductDAL接口,在里面定義一個方法,實現如下:
代碼如下:


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

然后新建接口實現工廠模式IProductDALFactory,實現如下:
代碼如下:

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

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

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

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

代碼如下:

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

接下來寫一下:實現Sql Server數據庫的方法,添加一個類SqlProductDAL,使其方法
輸出一句話
代碼如下:

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

再添加SqlProductDALFactory類,實現代碼如下:
代碼如下:

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

接下來添加App.config文件,來實現系統所選擇的數據庫是什么數據庫,代碼如下:
代碼如下:

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

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

namespace FactoryMethodPattern
{
public class BLL
{
public void Insert()
{
//利用反射實現功能
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();
}
}
}

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

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

  1. 總結:工廠方法克服了簡單工廠違背開放-封閉原則的缺點,有保持了封裝對象創建過程的優點,工廠方法模式是簡單工廠模式的進一步抽象和推廣,由于使用了多態性,工廠方法模式保持了了簡單工廠模式的優點,而且克服了它的缺點。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

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

asp.net 簡單工廠模式和工廠方法模式之論述:簡單工廠模式和工廠方法模式的區別 簡單工廠模式的最大優點在于工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態實例化相關的類,對于客戶端來說,去除了于具體產品的依賴。而工廠方法模式定義了一個用于創建對象的借口,讓子類決定實例化哪一個類,
推薦度:
標簽: 模式 net 工廠模式
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 亚洲 中文 欧美 日韩 在线人 | 黄色a视频 | 国产成人久久精品二区三区 | 国产亚洲欧美在线人成aaaa | 久久国产精品久久精 | 日韩亚洲国产综合久久久 | 制服丝袜一区 | 福利一区二区 | 国产高清免费视频 | 北条麻妃在线播放 | a集毛片| 亚洲欧洲中文字幕 | 国模冰冰大尺度啪啪 | 日韩专区在线观看 | 欧美 日韩 国产 在线 | 日韩亚洲欧美一区 | 午夜在线视频一区二区三区 | 国产l精品国产亚洲区在线观看 | 日本不卡一区二区三区 最新 | 欧美亚洲图区 | 国产美女视频黄a视频全免费网站 | 狠狠操夜夜 | 唯美清纯另类亚洲 | 中文字幕日韩一区二区三区不卡 | 欧美精品亚洲网站 | 亚洲最新在线观看 | 91欧美一区二区三区综合在线 | 国产一级插插插 | 国产精品久久久久久免费播放 | 欧美日韩第一页 | 国产日韩欧美精品 | 亚欧成人毛片一区二区三区四区 | 日本一区二区三区高清在线观看 | 日韩高清毛片 | 日韩a无v码在线播放免费 | 亚洲一区精品伊人久久 | 可以看的毛片 | 国产欧美一区二区精品性色99 | 亚洲一区色图 | 一区二区三区精品牛牛 | 国产精品 视频一区 二区三区 |