一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

.NET設計模式:工廠方法模式(Factory Method)

  概述

  在軟件系統中,經常面臨著“某個對象”的創建工作,由于需求的變化,這個對象的具體實現經常面臨著劇烈的變化,但是它卻擁有比較穩定的接口。如何應對這種變化?提供一種封裝機制來隔離出“這個易變對象”的變化,從而保持系統中“其它依賴該對象的對象”不隨著需求的改變而改變?這就是要說的Factory Method模式了。

  意圖

  定義一個用戶創建對象的接口,讓子類決定實例化哪一個類。Factory Method使一個類的實例化延遲到其子類。

  結構圖

  生活中的例子

  工廠方法定義一個用于創建對象的接口,但是讓子類決定實例化哪個類。壓注成型演示了這種模式。塑料玩具制造商加工塑料粉,將塑料注入到希望形狀的模具中。玩具的類別(車,人物等等)是由模具決定的。

  工廠方法解說

  在工廠方法模式中,核心的工廠類不再負責所有產品的創建,而是將具體創建工作交給子類去做。這個核心類僅僅負責給出具體工廠必須實現的接口,而不接觸哪一個產品類被實例化這種細節。這使得工廠方法模式可以允許系統在不修改工廠角色的情況下引進新產品。在Factory Method模式中,工廠類與產品類往往具有平行的等級結構,它們之間一一對應。

  現在我們考慮一個日志記錄的例子(這里我們只是為了說明Factory Method模式,實際項目中的日志記錄不會這么去做,也要比這復雜一些)。假定我們要設計日志記錄的類,支持記錄的方法有FileLog和EventLog兩種方式。在這里我們先不談設計模式,那么這個日志記錄的類就很好實現了:

 1/// 
 2/// 日志記錄類
 3/// 
 4public class Log
 5    {
 6
 7        public void WriteEvent()
 8        {
 9            Console.WriteLine("EventLog Success!");
10        }
11    
12        public void WriteFile()
13        {
14            Console.WriteLine("FileLog Success!");
15        }
16
17        public void Write(string LogType)
18        {
19            switch(LogType.ToLower())
20            {
21                case "event":
22                    WriteEvent();
23                    break;
24
25                case "file":
26                    WriteFile();
27                    break;
28
29                default:
30                    break;
31            }
32        }
33    }
34

NET技術.NET設計模式:工廠方法模式(Factory Method),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产精品亚洲高清一区二区 | 欧美猛妇色xxxxxbbbb | 国产一区二区精品在线观看 | 一级做a爰久久毛片武则天 一级做a爰毛片 | 91精品在线免费观看 | 久久精品国产久精国产 | 亚洲一区二区三区高清网 | 亚洲妇人成熟性成熟美女 | 国产福利最新手机在线观看 | 欧美日韩亚洲区久久综合 | 久久一本色系列综合色 | www国产视频 | 久久精品二区 | 国产欧美一区二区精品性色 | 国产伊人久久 | 国产99精品 | 男女一级做a爱过程免费视频 | 国产精品一区二区三区高清在线 | 国产在线美女 | 伊人啪啪 | 女人被爽到呻吟娇喘的视频动态图 | 曰韩美女一级视频 | 337p欧美超大胆日本人术艺术 | 麻豆xfplay国产在线观看 | 一二三四视频社区在线中文1 | 国产成人精品亚洲 | 91久久九九精品国产综合 | 国产91小视频| 色视频在线观看 | 深爱综合网 | 天天干天天玩 | 亚洲综合激情九月婷婷 | 国产小视频在线免费 | 国产国产成人久久精品杨幂 | 在线黄观看 | 五月婷婷导航 | 国产日韩欧美综合一区二区三区 | 韩国免费一级成人毛片 | 亚洲线精品久久一区二区三区 | 欧美成人天天综合在线视色 | 欧美另类xxx |