設計模式-六大設計原則| 靜心石 - - 點部落
文章推薦指數: 80 %
六大設計原則 ... 每個類應該只具備單一功能。
... 任何父類出現的地方,應該都可以用子類取代。
... 要依賴於抽象,不要依賴於具體實現。
... 不應該強迫程式依賴 ...
前言
因為這些筆記是很久以前自己做的記錄,主要是給自己看的,所以內容很簡單,也相信有一定程式設計經驗的人,看到這些說明也了解是什麼意思,可以做為一個簡單的回憶。
同時,因為當初在理解設計模式時碰到了很大的困難,所以我在底下也給一些如何理解設計模式的建議。
六大設計原則
(1)單一職責原則(singleResponsibilityprinciple)
每個類應該只具備單一功能。
(2)里氏替換原則(LSP:Liskovsubstitutionprinciple)
任何父類出現的地方,應該都可以用子類取代。
(3)依賴注入原則(DIP:DependenceInversionPrinciple)
要依賴於抽象,不要依賴於具體實現。
(4)接口分離原則(ISP:InterfaceSegregationPrinciple)
不應該強迫程式依賴他們不需使用的方法。
(5)迪米特原則(LOD:LawofDemter)
一個對象應當對其他對象盡可能的少了解。
(6)開放封閉原則(OCP:openforExtension,closedforModification)
類的改動是通過增加代碼進行的,而不是改動現有的代碼。
如何理解設計模式?
菜鳥的做法
今天假設你在一家公司工作,和A公司的簽約,A公司的DB採用orcale,於是你開發了一套專用的資料庫連線程式,那程式碼大概會長這樣:
OrcaleConnconn=newOrcaleConn();
結果後來A公司改需求,說orcale太貴了,我們希望改用mysql,這時你發覺慘了,上面所有用OracleConn連線的程式都要改,根本改不完。
老鳥的做法
而一個有經驗的設計師會怎麼做呢?他會設計一個界面IDBConn,然後讓OrcaleConn繼承IDBConn,如下:
IDBConnconn=DBConnFactory.getConn("conn");
其中DBConnFactory,他會去讀取設定檔,而設定檔的內容設定就是去鏈接Orcaleconn:
conn=OrcaleConn
當我們需要改成用mysql連線的時候,只需要再設計一個MysqlConn繼承IDBConn,然後更改設定檔:
conn=MysqlConn
我們發覺一切就大工告成了,原本的程式碼一行都沒改,就改了一個設定檔,有沒有很輕鬆!
而我們運用到的就是六大設計原則中的里氏替換原則,設計了一個父類出來,讓子類去替換它。
給新鮮人的建議:
我對於設計模式的理解,就是在實際生產環境中,針對一些常常會出現的設計問題,最後所總結出來的解決辦法。
因此,也不要把設計模式當成什麼了不起的東西,看不懂也別氣餒,畢竟學生做專題,跟實際生產環境是有很大差別的,不容易發生程式改一半,客戶要換資料庫或等等其他需要改需求的問題。
所以也建議沒有實務經驗的學生,如果在閱讀設計模式的過程中,實在覺得設計模式太難理解,可以先緩緩,累計一點工作經驗,回來看就輕鬆了。
另外,比起死記硬背23種設計模式,我還是建議先記住跟了解這六大設計原則,按照這六大設計原則寫出來的程式碼,就具備一定程度乾淨、簡潔、易懂及可維護性。
因為很多文章是過往自己搜集的資料、圖片,如有侵權疑慮請告知,將立即下架刪除。
設計模式
回首頁
本頁段落
六大設計原則
如何理解設計模式?
給新鮮人的建議:
延伸文章資訊
- 1一起幫忙解決難題,拯救IT 人的一天
其中,有五個原則這兩本書中不斷被提及,搭配Google 後才了解到,SOLID,就是這五個原則取第一個字母組合而成,實際閱讀、理解後,覺得這些原則可說是設計模式之所以 ...
- 2SOLID 設計原則. 當工程師大概半年左右的時間 - Medium
設計模式:SOLID Principles 物件導向原則. 當工程師大概半年左右的時間,在工作的過程中慢慢理解到設計模式的重要性,過去總是以能快速實作功能為第 ...
- 3设计模式原则· GitBook
设计模式原则 · 写在前面 · 设计的六大原则 · 依赖倒置原则(Dependence Inversion Principle) · 接口隔离原则(Interface Segregation P...
- 4設計模式-六大設計原則| 靜心石 - - 點部落
六大設計原則 ... 每個類應該只具備單一功能。 ... 任何父類出現的地方,應該都可以用子類取代。 ... 要依賴於抽象,不要依賴於具體實現。 ... 不應該強迫程式依賴 ...
- 5設計模式6大設計原則 - 程式前沿
設計模式6大設計原則 · 1. 單一職責原則 · 2. 里氏替換原則 · 3. 依賴倒置原則 · 4. 介面隔離原則 · 5. 迪米特法則 · 6. 開閉原則.