【大話設計模式】——淺談設計模式基礎

ZeroWM發表於2014-05-16

  初學設計模式給我最大的感受是:人類真是偉大啊!單單是設計模式的基礎課程就讓我感受到了強烈的生活氣息。個人感覺《大話設計模式》這本書寫的真好,讓貌似很晦澀難懂的設計模式變的生活化,趣味化。

  下面淺談一下對設計模式基礎的理解,如果理解的不好,還請大家指正!

  首先設計模式是對物件導向的更專業的詮釋,物件導向的三大基本特徵是繼承、封裝、多型。


繼承:

   1.子類繼承父類非private的屬性和功能。

   個人理解:有幾個老婆是私有屬性,小明他爸有好幾個老婆,小明呢,恰好趕上了國家頒佈法律一夫一妻          制(怎麼這麼衰呢~),那他是不能繼承他老爹的私有屬性的。他老爹在他的年代(類)裡面          是合法的(可呼叫私有變數)。

   2.子類可擴充套件父類沒有的功能。

   個人理解:原始人不會做飯,現在有了烹飪。

   3.子類可以以自己的方式實現父類的功能

   個人理解:以前取火是鑽木取火,現取火可以用打火機了。

  

多型:

  表示不同的物件可執行相同的動作,但要通過它們自己的實現程式碼來執行。

   個人理解條條大路通羅馬。

  

  通過什麼來實現多型呢?比如方法過載,抽象類,集合,泛型。

  方法過載:提供了建立同名多個方法的能力,但這些方法需要使用不同的引數型別

  


封裝:

  每個物件都包含它能進行操作所需要的所有資訊,這個特性成為封裝,因此物件不依賴其他物件來完成自己的操作。

 

封裝主要涉及到的知識點是類與例項、屬性與修飾符、構造方法、介面、委託。

介面:把隱式公共方法和屬性組合起來,以封裝特定功能的一個集合。(行為的抽象

委託對函式的封裝,是一種引用方法的型別。(把一堆方法打包


VS


區分類和介面:

  1. 類是物件的抽象;抽象類(整體)是對類的抽象;介面(區域性)是對行為的抽象。
  1. 如果行為跨越不同類的物件,可使用介面;對於一些相似的類物件,用繼承抽象類。
  1. 從設計角度,抽象類是從子類中發現公共的東西,泛化出父類,然後子類繼承父類,而介面是根本不知子類的存在,方法如何實現還不確認,預先定義。

區分抽象方法和虛方法:

        1.關鍵字不同:虛方法是vritual,抽象方法是abstract 

  2. 虛方法可以有方法體,抽象方法沒有方法體。

        3.虛方法可以定義在抽象類和非抽象類中,可以寫在父類中,在子類別重寫,定義虛方法必須實現;抽象方法必須定義在抽象類中,必須寫在父類中,在子類中必須被重寫,在定義抽象方法時不能實現方法。


區分抽象類和介面:


 學習心得:

  1.繼承、封裝給了我一種大道至簡的感覺;多型讓我體會到了生活的多姿多彩。

  2.繼承、封裝、多型跟我們推崇的學習方法也很相似。把重複性的東西加以歸納和總結,將知識變少,不同讓我們更好的瞭解這個事物。

  3.我們需要總結共性的東西,免去了很多無用功;體會個性的東西,解決一個問題可以多角度的思考,這樣才有助於鍛鍊我們的發散思維,提高我們解決未知問題的能力。



相關文章