.Net設計模式_工廠模式(3)

三、抽象工廠模式函數

引言:spa

咱們知道汽車須要不少部件才能組裝成一輛成品的車,那麼咱們須要汽車廠生產不少東西,如:馬達、車軸、輪胎等,這些東西組裝起來後成爲了一輛車。.net

這些東西就是產品族,圖解:(出之http://www.cnblogs.com/zhenyulu/articles/36885.aspx設計

這張圖很明確的詮釋了,工廠和產品族的關係。code

 理解:對象

引出產品族的概念是爲了說明,工廠不可能只生產一個商品,它會生產不少不少商品。blog

也就是一個工廠接口有不少的行爲(這個纔是咱們常常用到的),接口的每一個行爲就是一個產品(一個方法結果)。接口

 

代碼示例:get

咱們有多個商品:產品

// 輪胎
public interface IWheel
{
    void Use();
}
// 汽車
public interface ICar
{
    void Repair();
}
....

咱們的工廠均可以造不少商品:

public interface IFactory2
{
   // 輪胎
IWheel CreateWheel(); // 汽車
ICar CreateCar(); }

到這個其實能夠通俗的理解爲:工廠模式,就是把對象接口化抽象化的處理,

而後把對象的行爲,都抽象爲函數方法。

同時咱們能夠經過細分,實現接口套接口的模式,從而實現,代碼的可擴展性、低耦合度的功能。

 

應用場景:

若是系統的用戶信息來源不肯定性很高,那麼咱們設計一個IUser接口,來規範系統操做或者獲取人員信息的行爲,如:

UserEntity GetUserInfo(String _userCode);

Int32 InsertUserInfo(UserEntity _userInfo);

....

那麼,不管咱們的系統是被哪兒廠商的受權系統整合,咱們都不須要修改咱們的系統,由於咱們的系統調用的是IUser,

咱們只要根據不一樣廠商的受權系統,去寫一個IUser的適配器實現就能夠了。

這就是工廠模式最經常使用的一個應用場景。

 

源代碼下載(百度網盤):http://pan.baidu.com/s/1c03lAoC

CSDN下載:http://download.csdn.net/detail/hater22/6833939

相關文章
相關標籤/搜索