1. 程式人生 > >【設計模式】7種常用的面向物件設計

【設計模式】7種常用的面向物件設計

      如何同時提高一個軟體系統的可維護性和可複用性是面向物件設計需要解決的核心問題,也是用於評價一個設計模式的使用效果的重要指標之一

   設計模式到底有什麼用?簡單來說,設計模式至少有如下幾個用途:

      (1) 設計模式來源眾多專家的經驗和智慧,它們是從許多優秀的軟體系統中總結出的成功的、能夠實現可維護性複用的設計方案,使用這些方案將可以讓我們避免做一些重複性的工作,也許我們冥思苦想得到的一個“自以為很了不起”的設計方案其實就是某一個設計模式。在時間就是金錢的今天,設計模式無疑會為有助於我們提高開發和設計效率,但它不保證一定會提高,微笑

      (2) 設計模式提供了一套通用的設計詞彙和一種通用的形式來方便開發人員之間溝通和交流,使得設計方案更加通俗易懂。交流通常很耗時,任何有助於提高交流效率的東西都可以為我們節省不少時間。無論你使用哪種程式語言,做什麼型別的專案,甚至你處於一個國際化的開發團隊,當面對同一個設計模式時,你和別人的理解並無二異,因為設計模式是跨語言、跨平臺、跨應用、跨國界的,微笑

      (3) 大部分設計模式都兼顧了系統的可重用性和可擴充套件性,這使得我們可以更好地重用一些已有的設計方案、功能模組甚至一個完整的軟體系統,避免我們經常做一些重複的設計、編寫一些重複的程式碼。此外,隨著軟體規模的日益增大,軟體壽命的日益變長,系統的可維護性和可擴充套件性也越來越重要,許多設計模式將有助於提高系統的靈活性和可擴充套件性,讓我們在不修改或者少修改現有系統的基礎上增加、刪除或者替換功能模組。如果一點設計模式都不懂,我想要做到這一點恐怕還是很困難的,微笑

      (4) 合理使用設計模式並對設計模式的使用情況進行文件化,將有助於別人更快地理解系統。如果某一天因為升職或跳槽等原因,別人接手了你的專案,只要他也懂設計模式,我想他應該能夠很快理解你的設計思路和實現方案,讓你升職無後患之憂,跳槽也心安理得,何樂而不為呢?微笑

      (5) 最後一點對初學者很重要,學習設計模式將有助於初學者更加深入地理解面向物件思想,讓你知道:如何將程式碼分散在幾個不同的類中?為什麼要有“介面”?何謂針對抽象程式設計?何時不應該使用繼承?如果不修改原始碼增加新功能?同時還讓你能夠更好地閱讀和理解現有類庫(如JDK)與其他系統中的原始碼,讓你早點脫離面向物件程式設計的“菜鳥期”。 

   下面是設計模式的7種常用原則: