日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

设计原则分享

發(fā)布時間:2025/5/22 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计原则分享 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

丑女照片,美女照片

大家都能一眼看出這兩張圖片都區(qū)別。左邊丑,右邊美。

但是大家有沒有想過到底是根據(jù)什么來判斷丑美的呢? 都是根據(jù)美的標準,中國古代評價美不美根據(jù)這13項指標:膚、手、發(fā)、臉、目、鼻、唇、齒、頸、足、胸、腰、香。向標注靠的越近,也就越美。

那么對于代碼設計來說怎么評價美丑呢?代碼設計也有評價標準的。---設計原則,符合設計原則程度越高的設計越美

公認的設計原則有六大設計原則,

  • 一、單一職責原則
  • 二、里氏替換原則
  • 三、依賴倒置原則
  • 四、接口隔離原則
  • 五、迪米特法則
  • 六、開閉原則

這次就給大家分享一下這六大設計原則的定義,附帶個人理解,希望能給大家理解時打個輔助。

?

1,開閉原則

定義:軟件中的對象(類,模塊,函數(shù)等等)應該對于擴展是開放的,但是對于修改是封閉的

理解: 一個軟件對象,可以在不改變源碼的情況下,通過新增對象來擴展新的功能。

?遵守原則的優(yōu)勢 :

1,易擴展

? ?擴展不需要太過關心原有功能的具體邏輯,只需要關注原有邏輯提供的擴展方式就可以開始新需求的開發(fā)

2,易維護

? 由于開發(fā)新需求不需要更改原有功能的代碼,這樣就可以需要過多測試就能保證原有功能的穩(wěn)定性。

?

難點:

開閉原則是一種理想情況,要想做到現(xiàn)有架構對任何擴展都做到開閉原則是不現(xiàn)實的。退而求次能做到對可預期的擴展做到開閉原則就已經(jīng)是優(yōu)秀的設計了。

?

開發(fā)項目最大的困難就是,原本架構不支持擴展的新需求。導致實現(xiàn)簡單的新需求也很難實現(xiàn),甚至要重構架構才能實現(xiàn)新需求。

開發(fā)項目最大的風險就是,開發(fā)新需求的時候會對原有功能造成不可預期的影響。

遵守開閉原則后,項目中最大的困難和最大的風險都不存在來,這樣都項目開發(fā)起來不要太幸福;

?

2,單一職責原則

定義:應該有且僅有一個原因引起類的變更

理解: 一個方法,一個類或者一個接口只有一個原因引起變化,它就只負責一件事情,也就是只有一個職責。如果一個對象,負責兩個功能。但兩個功能的代碼耦合性很高的情況下。那么改變其中一個功能的代碼時,就不能保證一定不會對另外一個功能造成影響。如果將這個對象,分成兩個對象分別負責一個功能的話。改動其中一個功能時,你就可以有底氣都說,絕對,對另外一個功能的代碼不會造成任何影響

?遵守原則的優(yōu)勢 :

1,對象的復雜性降低

? ?一個對象只負責一個功能的實現(xiàn),那么這個對象的邏輯就會變的很簡單。如果還是很復雜只能說它的職責還可繼續(xù)劃分

2,可讀性提高

? ? 對象的復雜度降低了,自然就更容易讀懂了

3,可維護性提高

? ? ?對象的變的簡單了,容易讀懂了,自然就更容易維護了

4,變更風險降低了

? ?由于功能職責單一,變更之后的影響范圍降低了,存在的風險范圍自然就降低了?

難點:

單一職責要求職責單一。但是對職責對劃分是沒有固定模式的。對同一事情。從不同的角度和層次出發(fā)可以做出不同的職責劃分

?

?

2,依賴倒置原則

定義:高層模塊不應該依賴底層模塊,兩者都應該依賴抽象;抽象不應該依賴細節(jié);細節(jié)應該依賴抽象

理解:?面向接口編程,就是說本來是A依賴B的。但現(xiàn)在A不再依賴B,而是依賴C,而B也依賴C ,C只是A和B約定的一個條約;

?遵守原則的優(yōu)勢 :

1,對象的復雜性降低

? ?一個對象只負責一個功能的實現(xiàn),那么這個對象的邏輯就會變的很簡單。如果還是很復雜只能說它的職責還可繼續(xù)劃分

2,可讀性提高

? ? 對象的復雜度降低了,自然就更容易讀懂了

3,可維護性提高

? ? ?對象的變的簡單了,容易讀懂了,自然就更容易維護了

4,變更風險降低了

? ?由于功能職責單一,變更之后的影響范圍降低了,存在的風險范圍自然就降低了?

難點:

單一職責要求職責單一。但是對職責對劃分是沒有固定模式的。對同一事情。從不同的角度和層次出發(fā)可以做出不同的職責劃分

?

轉載于:https://www.cnblogs.com/ldq2016/p/11397132.html

總結

以上是生活随笔為你收集整理的设计原则分享的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。