日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

創(chuàng)建型模式

 新進小設計 2021-07-25

title: "[設計模式]創(chuàng)建型模式"
date: 2016-03-07 18:05
tags:

  • 設計模式
  • design
  • pattern
  • creational
  • factory
  • method
  • abstract
  • singlton
    categories:
  • 技術

摘要:設計模式并不能減小系統(tǒng)的復雜度,并不能減少if...else...。它只是幫助把代碼放在適當?shù)奈恢茫员阍谛枨蟾臅r改動的代碼最少。

簡單工廠模式

  • 簡單工廠模式的要點在于:當你需要什么,只需要傳入一個正確的參數(shù),就可以獲取你所需要的對象,而無須知道其創(chuàng)建細節(jié)。
  • 簡單工廠模式最大的優(yōu)點在于實現(xiàn)對象的創(chuàng)建和對象的使用分離,將對象的創(chuàng)建交給專門的工廠類負責,但是其最大的缺點在于工廠類不夠靈活,增加新的具體產(chǎn)品需要修改工廠類的判斷邏輯代碼,而且產(chǎn)品較多時,工廠方法代碼將會非常復雜。
  • 簡單工廠模式適用情況包括:工廠類負責創(chuàng)建的對象比較少;客戶端只知道傳入工廠類的參數(shù),對于如何創(chuàng)建對象不關心。

SimpleFactory

工廠方法模式

本質(zhì)上說就是產(chǎn)品創(chuàng)建功能的下放,交給子類去做。

  • 工廠方法模式是簡單工廠模式的進一步抽象和推廣。由于使用了面向?qū)ο蟮亩鄳B(tài)性,工廠方法模式保持了簡單工廠模式的優(yōu)點,而且克服了它的缺點。在工廠方法模式中,核心的工廠類不再負責所有產(chǎn)品的創(chuàng)建,而是將具體創(chuàng)建工作交給子類去做。這個核心類僅僅負責給出具體工廠必須實現(xiàn)的接口,而不負責產(chǎn)品類被實例化這種細節(jié),這使得工廠方法模式可以允許系統(tǒng)在不修改工廠角色的情況下引進新產(chǎn)品。
  • 工廠方法模式的主要優(yōu)點是增加新的產(chǎn)品類時無須修改現(xiàn)有系統(tǒng),并封裝了產(chǎn)品對象的創(chuàng)建細節(jié),系統(tǒng)具有良好的靈活性和可擴展性;其缺點在于增加新產(chǎn)品的同時需要增加新的工廠,導致系統(tǒng)類的個數(shù)成對增加,在一定程度上增加了系統(tǒng)的復雜性。

FactoryMethod

抽象工廠模式

最重要的概念:產(chǎn)品族
抽象工廠模式適用情況包括:

  • 一個系統(tǒng)不應當依賴于產(chǎn)品類實例如何被創(chuàng)建、組合和表達的細節(jié);
  • 系統(tǒng)中有多于一個的產(chǎn)品族,而每次只使用其中某一產(chǎn)品族;
  • 屬于同一個產(chǎn)品族的產(chǎn)品將在一起使用;
  • 系統(tǒng)提供一個產(chǎn)品類的庫,所有的產(chǎn)品以同樣的接口出現(xiàn),從而使客戶端不依賴于具體實現(xiàn)。

AbatractFactory

建造者模式

  • 在建造者模式的結構中引入了一個指揮者類,該類的作用主要有兩個:一方面它隔離了客戶與生產(chǎn)過程;另一方面它負責控制產(chǎn)品的生成過程。指揮者針對抽象建造者編程,客戶端只需要知道具體建造者的類型,即可通過指揮者類調(diào)用建造者的相關方法,返回一個完整的產(chǎn)品對象。
  • 建造者模式適用情況包括:需要生成的產(chǎn)品對象有復雜的內(nèi)部結構,這些產(chǎn)品對象通常包含多個成員屬性;需要生成的產(chǎn)品對象的屬性相互依賴,需要指定其生成順序;對象的創(chuàng)建過程獨立于創(chuàng)建該對象的類;隔離復雜對象的創(chuàng)建和使用,并使得相同的創(chuàng)建過程可以創(chuàng)建不同類型的產(chǎn)品。
  • 建造者模式所創(chuàng)建的產(chǎn)品一般具有較多的共同點,其組成部分相似,如果產(chǎn)品之間的差異性很大,則不適合使用建造者模式,因此其使用范圍受到一定的限制。

Builder

單例模式

(略)

原型模式

關鍵字: - clone();;

區(qū)分

  1. 抽象工廠模式與建造者模式相似,都可以創(chuàng)建組復雜對象。主要的區(qū)別是Builder模式著重于一步步構建一個復雜對象。而Abstract Factory著重于多個系列的產(chǎn)品對象。Builder在最后一步返回產(chǎn)品(封裝了產(chǎn)品的構建),而對于Abstract Factory來說,產(chǎn)品是立即返回的。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多