軟件設計原則和設計模式簡介—— 扯淡篇

最近在設計一個新的平臺(原來的平臺代碼都是一坨一坨的,每添加一個功能點,都會引出一堆的問題,恨不得在一個類裏面講所有功能實現,從不考慮代碼的可讀性,可維護性,可擴展性。)現在想要設計一個可擴展的在線平臺,因此不得不拾起設計原則與設計模式這些東西,在此做一些記錄,並且會使用項目中的案例或者優秀開源項目中的案例。

關於設計原則和設計模式,我想很多軟件開發者都多少的瞭解一點,但是又瞭解的不是那麼深入,看完就懂,過段時間就忘。它看起來是有用的,但是很多時候又覺得沒什麼用。據我所知道的大多數項目都是一次性開發,就是上線沒問題這個項目就完結了不需要擴展和二次開發,因此開發人員怎麼快速實現一個功能就怎麼寫代碼,不需要考慮代碼可讀性與可擴展性等問題。但是對於一個產品或者一個優秀的框架來說,這些是必須需要考慮的。不然就是一個一次性的毫無二開功能的產品,要不然就是每擴展一個功能都會引起一堆的問題。

設計原則和設計模式的理論網上一大堆,這裏複製百度百科的一些概念好了。軟件設計原則是爲了設計的軟件能夠擁有可靠性,健壯性,可修改性,容易理解,可擴展性,安全性等特性所總結的一套基本原則。在一個系統中這個設計原則可以使用多個並且重複使用。項目中常用的設計原則有一下七種:開閉原則,職責單一原則,接口隔離原則,依賴倒置原則,迪米特原則,合成複用原則,里氏替換原則。

軟件設計模式(Design pattern),又稱設計模式,是一套被反覆使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是爲了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性、程序的重用性。說白了就是程序員經過不知道多少行代碼的經驗總結出來的經驗,用這些模式寫代碼,可以讓你的代碼顯得更牛逼。經過總結,一共總結了常用的23種設計模式,包括創建型模式:單例(Singleton)模式,原型(Prototype)模式,工廠方法(Factory Method)模式,抽象工廠(AbstractFactory)模式,建造者(Builder)模式;結構型模式:代理(Proxy)模式,適配器(Adapter)模式,橋接(Bridge)模式,裝飾(Decorator)模式,外觀(Facade)模式,享元(Flyweight)模式,組合(Composite)模式;行爲型模式:模板方法(TemplateMethod)模式,策略(Strategy)模式,命令(Command)模式,職責鏈(Chain of Responsibility)模式,狀態(State)模式,觀察者(Observer)模式,中介者(Mediator)模式,迭代器(Iterator)模式:訪問者(Visitor)模式,備忘錄(Memento)模式,解釋器(Interpreter)模式

其實設計模式一直是開發人員感興趣的東西(雖然很多時候用不到,但是面試要問,我能怎麼辦,我也很絕望啊),並且網上也有很多的博客講設計模式(千篇一律?寫一下設計模式的概念,畫一個類圖,舉一個例子,完事。)所以我希望能寫一點不一樣的東西,當然這裏說的不一樣不是不寫概念,不畫類圖,不舉例子,而是儘可能使用實際應用中的例子,或者優秀開源軟件中的例子(Spring,MyBatis)等。從實踐中來,到實踐中去。

最近寫的博客比較雜,主要是總結一下以前做的筆記,對常用框架進行下深入源碼理解,所以這個寫一點,那個寫一點,比較高大尚的說法就是筆記本地雲遷移。手動滑稽!

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章