天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

系統架構技能之設計模式—工廠模式

  一、開篇

  本文主要是講述設計模式中最經典的創建型模式-工廠模式,本文將會從以下幾點對工廠模式進行闡述。        image  本文將會從上面的四個方面進行詳細的講解和說明,當然會的朋友可以之處我的不足之處,不會的朋友也請我們能夠相互學習討論。

  二、摘要

  本文將會主要是結合項目中的一些實例作為實例來分析工程模式的使用方式和何時使用工程模式,并且分析工程模式的有點和它解決的問題,在我們實際的項目中何時能使用到它,或者說我們在什么情況下,應該考慮使用工廠模式來解決項目中的問題,一般情況下我們可以這樣理解設計模式,設計模式是一種方案,為我們遇到與設計模式提出的應用場景想象或者相仿的場景中,這類問題通常是經常發生或者是經常遇到的問題的通用解決方案。

  本文依然是采用圖文講解的形式來分析工程模式在項目中出現的位置,并且給出幾個靈活的實現方案。主要針對的實現方式有:通過配置文件,通過類型,通過委托,通過特性等來實現工廠。

  三、本文大綱

       a、開篇。

       b、摘要。

       c、本文大綱。

       d、工廠模式的特點及使用場景。

       e、工廠模式的實現方案。

       f、工廠模式使用總結。

       g、系列進度。

       h、下篇預告。

  四、工廠模式的特點及使用場景

  4.1、工廠模式簡介

  工廠模式是創建型模式中最典型的模式,主要是用來創建對象,減少我們在使用某個對象時的new() 操作,我相信大家都有這樣的困惑,目前我所在的項目都在程序開發的過程中,還是有很多的new()操作出現在表現層中,并沒有通過工廠來創建對象,一方面可能是因為我們自身比較懶,不規范項目的編碼形式,另外一方面也是由于項目的進度比較緊,沒有那么多的時間去完成工廠的統一創建,當然對于這樣的動態創建對象的工廠,推薦的做法還是我們后面會講到的創建型模式--《抽象工廠模式》來解決吧。

  如果您并不知道工廠模式是用來干什么的,我們可以通過如下舉例來說明,例如我們現在有個礦泉水加工廠,加工礦泉水,我們現在知道有礦泉水這個對象,那么當我批量生產礦泉水的時候,我們就通過工廠來批量的生產,等于我們程序中的批量創建對象。這時候我有很多個對象,也就是很多游客,他們每人都要一瓶礦泉水,這時候如果說把游客比作不同的應用程序模塊,都要使用礦泉水這個對象,那么我是不是應該每個應用程序都在使用這個對象的時候,我使用new()操作呢?,無疑這不是一個好的方案。我們來看看圖形化的描述吧?

image  這種情況下,不同的游客需要礦泉水的時候,我就new()一個礦泉水和我找個加工廠生產礦泉水明顯是有差別的,這個時候,游客不應該和礦泉水有關聯關系了,而且游客不知道,礦泉水是怎么生產出來的,也不需要關心這些東西。

  那么我們應該如何去解決這樣的問題呢?基于面向對象的變成設計時,原則就是低耦合,對象和對象之間。那么對象之間的引用關系,可以通過抽象出接口,通過借口的依賴來解耦,降低系統的耦合性。        image  假如這個時候我修改對象服務的名稱,那么我是不是必須把所有的調用這個對象服務應用程序代碼都進行修改?這個是必須的,否則程序無法編譯通過的。但是如果我們使用工廠模式的時候呢?有什么不同呢?我們來看看:        image  上面是添加了工廠模式之后的情況,上面就算是你修改了類名之后,只需要修改工廠中的New出來的類即可,當然如果你要是通過返回接口的形式的話,再不修改接口命名的前提下,如何修改類方法都是可行的,并且通過工廠模式,無疑降低了應用程序與對象之間的耦合性,通過工廠來解耦,提供程序的應對變化的適應能力。

  4.2、工廠模式的使用場景

  工廠模式一般用于創建一類對象,而不用每次在使用時通過new()對象才能使用對象,而是通過工廠來完成對象的創建,這樣不但提供了統一創建對象的入口,而且對于程序的可維護和可測試性都有很大的提高。總體來說如下場景使用工廠模式非常合適:

  1、工廠負責創建某一類對象的時候,或者說工廠的職責比較單一時,如果說多個類型的對象時候,用工廠模式就不如使用抽象工廠了

  2、一般比較少的積累對象,可以通過類型的判定創建不同的對象時,也是可以通過工廠模式來完成,例如多數據庫的支持,我們在設計數據訪問層時,利用簡單對象工廠,通過枚舉或者配置文件的形式,來動態的創建數據訪問層實例。

  3、一般來說類型單一的對象,或者類型比較少的時候,使用工廠模式來創建對象可以解決一類問題。還可以通過一個總的工廠,來創建多個工廠,然后多個工廠負責創建相應的實例,有點類似我們平時說的目錄結構似的。

  類似如下的形式,大家一看就明白了:          image  等于是不同層級的工廠,具有不同的職責和任務。

  五、工廠模式的實現方案

  5.1、工廠模式的配置文件實現。

  我們先看配置文件的配置內容:

<DatabaseInfo>
<ConnKey>default</ConnKey>
<DataBaseType>MSSQLServer</DataBaseType>
</DatabaseInfo>

it知識庫系統架構技能之設計模式—工廠模式,轉載需保留來源!

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

主站蜘蛛池模板: 综合精品欧美日韩国产在线 | 无码任你躁久久久久久老妇双奶 | 91精品国产高清久久久久久 | 久久免费国产视频 | 欧美性爱 成人 | 亚洲爆乳无码精品AAA片蜜桃 | 高清bblxx手机在线观看 | 久久精品国产亚洲AV忘忧草蜜臀 | 含羞草免费完整视频在线观看 | 再深点灬舒服灬太大了在线视频 | 羞羞漫画在线播放 | 含羞草免费完整视频在线观看 | 久久这里的只有是精品23 | 十分钟在线观看免费视频高清WWW | 第四色男人天堂 | 亚洲日本欧美产综合在线 | 538prom国产在线视频一区 | 印度学生xxxxx性14一16 | 99re.05久久热最新地址 | 性绞姿始动作动态图 | 国产精品无码AV天天爽人妻蜜桃 | jk制服喷水| 国产欧美一区二区精品性色tv | 无人影院在线播放 | 天天日免费观看视频一1 | 亚洲精品AV一二三区无码 | 国产国拍亚洲精品永久软件 | 午夜宅宅伦电影网中文字幕 | 亚洲精品国产自在现线最新 | 国产亚洲精品AV麻豆狂野 | 久久精品电影网 | 欧美多人群p刺激交换电影 欧美多毛的大隂道 | 一本道mw高清码二区三区 | 午夜AV亚洲一码二中文字幕青青 | 久久精品免费观看久久 | 久久精品国产99欧美精品亚洲 | 啪啪漫画无遮挡全彩h网站 啪啪漫画无遮挡全彩h同人 | 素人约啪第五季 | 毛片网站在线观看 | 贵妇局长的蕾丝乳罩 | 熟女人妻AV五十路六十路 |