設計模式基礎
阿新 • • 發佈:2017-07-24
avi art 分享 全部 針對 需要 耦合 class 設計
在學習設計模式前我們必需要了解一些面向對象編程的基礎知識,必須從宏觀上學習設計模式的用途。以及對我們編程的便利性。
【面向對象】
在不同的學習階段對面向對象有不一樣的了解,此時我所理解的面向對象是把現實事物抽象為對象,我們的編程以對象為單位,這樣我們對事物的理解會進一步加深,更easy接受和設計。 對象是自包括的實體,它包括屬性和方法。類是具有同樣屬性和功能的對象的集合。理解面向對象就要從類入手,屬性和方法是組成類的兩大元素。
封裝、繼承、多態是面向對象的三大設計方法。
涉及到數據在程序的存儲結構就不得不考慮集合的概念,它提供數據在內存中的存儲方式。
對象實例化之初(new()方法實現時)必需要調用構造函數,它是一種特殊的方法。沒有不論什麽返回值。為對象成員變量賦初值。每一個類能夠有不同的構造函數。詳細實現對象依據傳遞參數不同來識別詳細調用的哪個函數。
同一方法,不同傳入參數或傳出類型叫做方法重載。它能夠在不改變原有方法的基礎上新增功能。
繼承--把相同類的公用方法提出放到父類,子類通過繼承父類的方法,就能夠防止代碼反復出現。提高了可擴展性。但相同存在問題。子類繼承父類的方法,那父類改動子類必須跟著變化,添加了耦合性,針對此問題提出虛方法、抽象類和接口的概念。
抽象類:抽象類不能被實例化,存在抽象方法就必須是抽象類,是專門用於繼承的類。用abstract表示。
接口:是一種標準,子類實現接口時必須實現接口全部方法,有了接口能夠把生產與需求相分離。便於維護。
【UML類圖關系】
學習設計模式,理清楚各個類之間的關系不可缺少: 較難區分的是組合與聚合。聚合是一種弱“擁有”關系,表示A對象能夠包括B對象。但B對象不是A對象的一部分;組合是一種強“擁有”關系。體現嚴格的總體與部分的關系,經典實例是鳥擁有翅膀。他們是一個統一的總體。
【設計模式總覽】
設計模式依據不同的應用劃分為創建型。結構型和行為型三種類型。具體內容見我寫的還有一篇文章《設計模式--基礎學習總結》
【總結】
設計模式的學習要有紮實的基礎,善於提出問題,在不同的學習階段提出不一樣的問題,讓學習不斷深入化。
設計模式是一套被重復使用、大多數人知曉的,代碼設計經驗的總結,使用設計模式能提高代碼重用性,可理解性和代碼的可靠性。就好比大廈的設計結構一般。
在學習設計模式前我們必需要了解一些面向對象編程的基礎知識,必須從宏觀上學習設計模式的用途。以及對我們編程的便利性。
【面向對象】
在不同的學習階段對面向對象有不一樣的了解,此時我所理解的面向對象是把現實事物抽象為對象,我們的編程以對象為單位,這樣我們對事物的理解會進一步加深,更easy接受和設計。 對象是自包括的實體,它包括屬性和方法。類是具有同樣屬性和功能的對象的集合。理解面向對象就要從類入手,屬性和方法是組成類的兩大元素。
封裝、繼承、多態是面向對象的三大設計方法。
涉及到數據在程序的存儲結構就不得不考慮集合的概念,它提供數據在內存中的存儲方式。
對象實例化之初(new()方法實現時)必需要調用構造函數,它是一種特殊的方法。沒有不論什麽返回值。為對象成員變量賦初值。每一個類能夠有不同的構造函數。詳細實現對象依據傳遞參數不同來識別詳細調用的哪個函數。
同一方法,不同傳入參數或傳出類型叫做方法重載。它能夠在不改變原有方法的基礎上新增功能。
繼承--把相同類的公用方法提出放到父類,子類通過繼承父類的方法,就能夠防止代碼反復出現。提高了可擴展性。但相同存在問題。子類繼承父類的方法,那父類改動子類必須跟著變化,添加了耦合性,針對此問題提出虛方法、抽象類和接口的概念。
抽象類:抽象類不能被實例化,存在抽象方法就必須是抽象類,是專門用於繼承的類。用abstract表示。
接口:是一種標準,子類實現接口時必須實現接口全部方法,有了接口能夠把生產與需求相分離。便於維護。
【UML類圖關系】
學習設計模式,理清楚各個類之間的關系不可缺少: 較難區分的是組合與聚合。聚合是一種弱“擁有”關系,表示A對象能夠包括B對象。但B對象不是A對象的一部分;組合是一種強“擁有”關系。體現嚴格的總體與部分的關系,經典實例是鳥擁有翅膀。他們是一個統一的總體。
【設計模式總覽】
設計模式依據不同的應用劃分為創建型。結構型和行為型三種類型。具體內容見我寫的還有一篇文章《設計模式--基礎學習總結》
【總結】
設計模式的學習要有紮實的基礎,善於提出問題,在不同的學習階段提出不一樣的問題,讓學習不斷深入化。
設計模式基礎