設計:原則

上學時候老師一到考試總會劃重點:“考試前一定要先把卷子從頭到尾看一遍,先做簡單的,由簡入難”,當下我們在學習的時候也是相同的道理,從簡單的開始。

在這裏要糾正一下那些“由易入繁”的同學,直接學習設計模式是沒有意義的,設計模式的初衷就是爲了各種優化代碼,流程是  問題->定位,彙總(原則)->設計模式,直接學習設計模式而不看原則,這就是撿了芝麻丟了西瓜,需要反向去領悟  “什麼時候用什麼設計模式”。

那麼下面就來系統的認識下有哪些原則:

1》單一原則

你今天去上班,如果你把你妻子,兒子,女兒都帶上了....

2》里氏替換原則

"任何基類出現的地方子類一定可以出現":你可以去男澡堂,因爲你歸類在 男 下面

3》依賴倒置原則

例如 : 面向過程開發 和 面向對象開發

提升可維護空間,如 回家 這一需求:

面向過程開發:下班,走3000米路,到某某小區,上樓回家

面向對象開發:

         下班,走3000米路,到某某小區,上樓回家

         下班,坐直升機飛機到某某小區,上樓回家

         下班,先與女朋友交流感情,帶女朋友一起回家

          .....

         怎麼回家,你可以隨意想象

PS:理解這一點,你纔算是真正在用面向對象做開發,不論的話你只是齒輪,別人動的時候你也會動

4》接口隔離原則

”客戶端不應該依賴它不需要的接口 “

你今天去上班,如果你把你妻子,兒子,女兒都帶上了....

”類間的依賴關係應該建立在最小的接口上 “

例子1: 你是公司的管理層  和 你是車間小組的組長,現在公司需要提拔一位車間小組組長作爲 車間組長,公司的管理層  包括 車間組長,這時候如果你被稱作第一種,那麼這個甜頭就可你沒關係了

例子2:你在 阿里 上班,職位是掃地的,你過年回家只說你在 阿里 上班,別人都說你不錯,然後別人託你關係想進 阿里,你怎麼搞?

5》迪米特法則

”一個對象應當對其他對象有儘可能少的瞭解“:

例子1:警察、罪犯(你的朋友)、你

警察抓罪犯,你知道你朋友犯罪,你不上報會被定義爲包庇罪。

例子2:需求(修改類A的...),類A,類B

此時如果類B包含類A的內容較少,那麼類B只需要改動很少

6》開閉原則

”對於擴展是開放的,對於修改是關閉的“

在我們開發完所有功能並交付後,後期維護應當確保一點:在對以前代碼不做改動的情況下添加新內容。

有改動就意味着測試,這就像你每次都從 1+1 開始,前期你一天可以學習到2年級的內容,甚至一天能學習到6年級內容,但你永遠也不能一天學習到初中,高中,大學的內容

 

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