學習Design Patterns觀念
相信大家在寫程式時常會有不知如何下手的經驗,即便你己經把程式語法背的滾瓜爛熟,把物件導向觀念看了一便又一便。但一個全新的專案到你面前時,光是想要如何切割出合適的架構,可能就會讓你頭痛。有時好不容易下定決心規劃好了,但實作下去時卻發現不是那麼一回事,可能與原先規劃有些細節沒有思考到。但此時頭己經洗一半了重做也不是,於是乎只好修改規格去配合實作,於是呼我們就挖東牆補西牆,然而洞越挖越大最後補不起來,整個專案也就跨了。
對於一個缺乏物作導向實戰的經驗的工程師而言,往往得經過數次的實作練習,才能漸漸的掌握到物件導向程式規劃的概念,進而能設計的出架構良好且具有彈性的程式。但現在我們可以不用那麼辛苦的學習,因為有四位大師:Erich Gamma、Richard Helm、Ralph Johnson、John Vlisside,己將他們軟體開發的經驗和技術累積整理成了一個特定的範本,也就是:
[design Patterns]中文翻做[設計模式],或簡稱為GoF(the gang of four)4人幫。GoF分別針對常用的23個Design Patterns,有條理的彙集成一本書:[Design Patterns-Elements of Reusable Object-Oriented Software]。而此書對於從事物件導向程式設計的工程師具有相當大的影響力。
學習Design Pattern可以幫助我們更快的理解物件導向程式設計的應用。並透過這23個Pattern可以幫助我們更快速的理解該如何去設計一個應用程式的架構,同時也可以保持架構的穩定性(pattern己經過大眾的檢驗,比起自創的招式自然比較不會有缺陷)。但需注意的是Design Pattern 並不是類別函式庫,而是一種概念。Design Patterns主要是用來構思要如何去分割與組合物件(零件),以發揮程式最大的彈性與重覆利用率。因此請不要把Design Pattern當做完成品,而是要依程式開發的需求不斷去擴充修改pattern,到最後你將會累積一套屬於自己的pattern。
在Android框架設計中也大量採用了Design Pattern設計,若你用心觀查就會發現到處都看的到pattern的影子。對於想要深入了解Android開發框架的開發者,必須要能掌握以下十三個Android大量採用的Design Pattern。
Android 系統中使用到的設計模式 |
---|
Template Method模式(實際處理交給子類別) |
Factory Method模式(建立物件工作交由子類別) |
Observer模式(通知狀態變化) |
Abstract Factory模式(把零件組成產品) |
Adapter模式(換個包裝再利用) |
Composite模式(對容器與內容一視同仁) |
Strategy模式(策略切換) |
State模式(以類別表示狀態) |
Proxy模式(要使用在建立) |
Bridge模式(功能與實作的橋樑) |
Iterator模式(遞增) |
Mediator模式(只要面對一個顧問) |
Facade模式(單一窗口) |