现在的位置: 首页 > 综合 > 正文

學習設計模式第二篇

2013年09月02日 ⁄ 综合 ⁄ 共 966字 ⁄ 字号 评论关闭

設計模式分有幾個大類:

  • 創建型:
  • 結構型:
  • 行為型:

本文將陸續更新,每個類別下的設計模式具體的目的及意圖,及工作方式:

  • 行為型:
  1. strategy模式:策略模式.目的是分解算法.將內容與算法分開.以達到內容與算法的變化能夠互不影響.也是為了支持變化.

工作方式:

    在內容的容器中,包括有策略接口的引用.當容器的內容需要變換不同的算法時,只需要將指定的算法引用指定給容器中的策略接口引用.變達到了變換算法的目的,而無法變動多少代碼.

2  bridge模式:橋接模式

    目的是分離抽象與實現.例如人都有一些共有的功能,但是男人或是女人在這些共有的功能上的表現卻是不一樣的.于是可以分成男人功能和女人功能,甚至更多.

    工作方法:

        將人定義成一個抽象類.包含有共有功能的引用.然後男人或是女人都繼承人這個抽象類.男人功能和女人功能再都實現共有功能類.

        與工廠方法不同的是,工廠方法用於創建不同分類的對象.而橋接模式用於實現不同的功能.這兩種模式可以組合起來使用.

  • 結構型:
  1. decorator模式:裝飾模式.目的是對一個只有基本功能類實現功能的擴展.因為可能有多個功能塊而且各個功能塊可以組合形成更強的功能.如果是用繼承,那麼產生的類的個數將會是所有功能塊個數的組合.例如:5個功能塊,將會達到5*4*3*2*1個類.而如果用裝飾模式.卻只需要有5個功能塊的裝飾類就可以實現.

工作方式:

              裝飾類和基本功能類具有相同的接口.它本身是基本功能類的子類.這也能使裝飾類本身成為其它裝飾類的"基本功能類"的引用.從而組合形成更為強大的類.

             裝飾類具有一個對基本功能接口的引用,以便將新增的功能附加到基本功能類上.

  • 創建型:
  1. Abstract Factory模式:抽象工廠模式.目的是為了實現運行時的多態.例如同樣是服裝厂,有生產t恤 夾克 西裝 運動衫等的工廠.當然服裝厂的產品也有t恤 夾克 西裝 運動衫.當一個服裝厂的客戶在口頭上說我可能需要訂購一批服裝而沒有指明是什麼服裝時.就可以使用這種模式.到真正生產的時候才指定是要生產什麼.

工作方式:

工廠是接口.而具體實現則代表哪種類型的服裝廠.產品也是接口.而具體哪種產品是產品的實現.在工廠接口中,我們只會產產品,而不會產品具體哪種產品.

抱歉!评论已关闭.