<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      筆記 - 關于“工廠”的設計模式

      放假了不能一直歇著呀,就再次翻了翻《大話設計模式》,之前看了一次感覺是囫圇吞棗,這次挑了有關“工廠”的模式進行“單元復習”,把筆記就記在這吧。

      之前看過博客園有人說這本書對某些設計模式理解的其實不完全對,而我是按照這本書理解的;如果讀者對我的理解有異議,歡迎留言。

      簡單工廠模式

      類圖:

      SimpleFactory

       

      用法:客戶端利用SimpleFactory產生一個具體產品(用AbstractProduct引用),當然這需要客戶端傳參,但判斷邏輯位于SimpleFactory中(如switch語句)。

      擴展:若需要增加具體產品E,則須添加ConcreteProductE類,同時修改SimpleFactory。

      修改:若需要修改具體產品A,則只需修改ConcreteProductA類。

      本書例子:計算器。

      工廠方法模式

      類圖:

      FactoryMethod

       

      用法:客戶端根據需要的產品選擇工廠(實例化具體工廠A,用AbstractFactory引用),再用該工廠制造產品(用AbstractProduct引用)。

      擴展:若需要增加具體產品E,則須添加ConcreteProductE類和ConcreteFactoryE。

      修改:直接修改相應產品。

      本書例子:雷鋒。

      抽象方法模式

      類圖:

      AbstractFactory

       

      用法:客戶端根據需要的產品選擇工廠(實例化具體工廠A,用AbstractFactory引用),再用該工廠制造產品(用AbstractProduct引用)。相比而言,抽象工廠模式的好處是易于轉換產品的系列(如由A系列轉換為B系列)。

      擴展:若需要增加產品3A和3B,則除了要增加3個類外還要修改FactoryA和FactoryB。若需要增加產品系列C,除了增加相應的類外,還要增加FactoryC類。

      修改:直接修改相應的類。

      本書例子:遷移數據庫。

      抽象方法模式+(與簡單工廠模式結合)

      類圖:

      AbstractFactory

       

      用法:客戶端不進行判斷,而是在SimpleFactory中判斷產生A系列還是B系列,這時客戶端可能傳參了,也可能沒傳參,SimpleFactory通過自身的字段或屬性來決定A系列還是B系列。

      擴展:若需要增加產品3A和3B,則除了要增加3個類外還要修改SimpleFactory。若需要增加產品系列C,則需要修改SimpleFactory內部代碼(如switch語句)。

      修改:直接修改相應的類。

      本書例子:遷移數據庫。

      抽象方法模式++(與簡單工廠模式結合,再使用“反射”)

      在實例化產品時,選擇A系列還是選擇B系列其實只是類名不同,此時使用反射技術能很好地避免出現switch語句,同時使設計盡量適合“開放-封閉”原則。

      大概的寫法是:AbstractProduct1 product = (AbstractProductA)Assembly.Load(“AssemblyName”).CreateInstance(“AssemblyName.Product1A”);

      其中,AssemblyName為程序集名稱,CreateInstance的參數即我們的變量,我們可以將它存在配置文件中,這樣,我們就能完全不修改程序,只修改配置文件來切換數據庫類型了。

       

       

      說實在的,剛剛學習設計模式,在練習時還沒有養成設計模式的意識,今后要多多加強!多多練習!多多寫博!

      Technorati 標簽: 設計模式,工廠

      posted @ 2011-02-08 19:21  FrankFang  閱讀(2668)  評論(15)    收藏  舉報
      主站蜘蛛池模板: 精品尤物TV福利院在线网站| 二区三区亚洲精品国产| 久久精品国产亚洲不AV麻豆| av大片在线无码免费| 亚洲天堂成人网在线观看| 人妻中文字幕一区二区视频| 欧美国产综合视频| 桃花岛亚洲成在人线AV| 亚洲一区二区三区蜜桃臀| 九九热免费精品视频在线| 亚洲成在人线AV品善网好看| 99在线国内在线视频22| 99在线精品国自产拍中文字幕| 国产女人喷潮视频免费| 大屁股国产白浆一二区| 亚洲免费福利在线视频| 国产二区三区不卡免费| 激情文学一区二区国产区| 亚洲第一区二区快射影院| 国产福利精品一区二区| 国内精品免费久久久久电影院97| 日本va欧美va欧美va精品| 成年无码av片在线蜜芽| 精品国产一区二区在线视| 国产精品成人国产乱| 熟女国产精品一区二区三| 日韩在线视频线观看一区| 亚洲精品宾馆在线精品酒店| 丰满岳乱妇久久久| 亚洲女同精品中文字幕| 人成午夜大片免费视频77777| 亚洲一级片一区二区三区| 国产精品99久久久久久董美香| 亚洲国产成人无码电影| 一本无码人妻在中文字幕免费| 亚洲精品国产av成拍色拍个| 久久亚洲精品中文字幕无| 日本极品少妇videossexhd| 午夜综合网| 精品国产一区二区色老头| 国产国语对白露脸正在播放|