• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-167  評論-8  文章-0  trackbacks-0

            抽象工廠模式作為工廠模式的一種,自然具有工廠模式的設計理念,也就是提供一種生產實際產品的方法。

            builder模式的設計思想是提供一種組裝產品零件的方法。

            二者乍看起來井水不犯河水,可仔細一看二者何其相似來耳。

            在抽象工廠方法中有產品族的概念,意指同一系列的產品。比如魔獸中的一個族就有一套這樣的單位,而不同族之間都含有類似的單位,而各自對應的單位又具有一些差異。這樣在抽象工廠方法中建立4個具體工廠,各自負責一個族的單位生產就很自然了。

            作為對比,舉一個builder的例子。我們攢機器的時候首先會想到選用什么樣的CPU、顯卡,然后是什么樣的主板,繼而選擇什么樣的內存、硬盤。這樣我們在攢機器前就應該有一個所謂的指導類,向這個指導類中傳入具體的builder類就可以組裝出符合我們要求的機器。

            也許你發現了二者的差別,抽象工廠中必須要有嚴格的界限,即是你的就不是我的;而builder模式不存在這樣一個限制,你沒有被要求選擇AMD就要選擇金士頓。在我看來,若只看表明確實如此,如果深究這并非什么二者的差別。builder模式的無限制也可以擴展到抽象工廠中去。

            抽象工廠中某個產品等級結構(我覺得叫做產品種類更為合適)就要在每一個產品族中有一個具體的產品,比如農民就有侍僧、小精靈、苦力、農民四種,其它單位也基本如此。然而是可以有特例的,英雄就是一個特例。四個族中雖然含有各自的英雄,但是雇傭英雄的出現打破了這種限制,它們不屬于任何一個族,卻又屬于所有的族。這樣二者這方面的差別并不是本質上的。

            那么本質上的差別是什么呢?

            其實很簡單,本質上的差別還是源于設計理念。抽象工廠被設計出來的原因是生產一系列產品的需要,builder模式被設計出來的原因是組裝一系列的組件生產出一件產品。builder模式最終的目標是返回一件成品,而抽象工廠所返回的是一系列相互關聯的產品。

            builder模式可以利用抽象工廠方法生產自己的組件,而抽象工廠方法如果將所有生產的產品組裝在一起也就成為了builder模式。

            posted on 2012-11-13 17:51 老馬驛站 閱讀(512) 評論(0)  編輯 收藏 引用 所屬分類: Design pattern
            99久久夜色精品国产网站| 久久精品国产亚洲AV电影| 久久国产精品77777| 亚洲精品无码久久不卡| 国产精品美女久久久网AV| 久久99国产精品尤物| 少妇久久久久久被弄高潮| 伊人久久大香线蕉综合5g| 一97日本道伊人久久综合影院| 国产精品免费看久久久香蕉| 久久综合丝袜日本网| 久久综合九色综合97_久久久| 99国产欧美久久久精品蜜芽| 久久亚洲精品无码AV红樱桃| 久久人人爽人人爽人人片AV东京热| 久久婷婷人人澡人人| 久久人人爽人人爽人人片AV麻豆| 久久久黄片| 久久国产视频网| 欧美色综合久久久久久| 日本久久久久久久久久| 久久国产精品无| 亚洲精品国产第一综合99久久| 欧美与黑人午夜性猛交久久久| 中文精品99久久国产| 中文字幕乱码久久午夜| 色综合久久综合中文综合网| 久久99国内精品自在现线| 99久久精品国产高清一区二区| 青青草原综合久久| 亚洲欧美久久久久9999| 久久无码AV中文出轨人妻| 国产精品99久久99久久久| 国内精品免费久久影院| 97香蕉久久夜色精品国产 | 久久99国产精品久久99| AA级片免费看视频久久| 久久最新免费视频| 亚洲中文字幕久久精品无码喷水| 久久国产精品99久久久久久老狼| 久久久综合香蕉尹人综合网|