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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

java设计模式之设计原则③单一职责原则

發布時間:2023/12/31 asp.net 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java设计模式之设计原则③单一职责原则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

定義:
不要存在多于一個導致類變更的原因
一個類/接口/方法只負責一項職責
優點:
降低類的復雜度,提高類的可讀性,提高系統的可維護性、降低變更引起的風險

以下通過案例進行理解單一職責原則:
創建一個Brid(鳥)類

創建一個Test測試類

我們會發現大雁用翅膀非是正確的,但鴕鳥飛不起來,所以我們需要進行判斷

如果現在再傳來一些特色的鳥類,那我們這個方法還要繼續擴展,風險率就變高了,不遵從單一原則。
所以我們現在就從類的層次上將這個Brid拆分開。
創建一個FlyBrid類 表示 會飛的鳥

再創建一個WalkBrid類 表示 走路的鳥

在Test類中就將飛的鳥和走路的鳥進行一個區分

這個就是一個類的單一原則的體現,我們把一個類進行拆分,這樣就使得每個類里面的方法職責是單一的,比較簡單,也不至于修改的時候引入新的問題。
類圖如下:

這個類圖還是比較簡單的
現在呢我們就是用test類去創建FlyBrid和WalkBrid兩個類,對于Brid類已經沒用了

對于職責呢在類層次上還是比較清晰的,這是對于類的單一職責
那接下來就用接口舉例
還是用ICourse進行舉例,創建ICourse接口
getCourseName獲取課程名稱的方法
getCourseVideo獲取視頻的方法
studyCourse學習課程的方法
refundCourse退款方法

對于上面的ICourse接口可不是只有一個職責,首先它一個大職責是獲得課程信息( 課程名稱和視頻信息),那另外一個職責呢就是管理課程,和課程內容無關,例如學習課程,那如果我們學習課程就要獲取課程名稱和視頻,那如果退了這個課程吶可能就獲取不了這個課程名稱和視頻,那就是說退這個課程會影響課程這個接口的獲取課程內容相關的變化,這兩個職責是互相影響的,那我們就可以把這個接口拆成兩個接口,一個接口負責獲取課程信息,另一個接口管理課程
創建一個接口ICourseManager

再創建一個接口ICourseContent

現在我們來創建一個ICourse的實現類實現ICourseManager 和ICourseContent接口

類圖如下:

課程的實現類實現兩個接口,職責呢也是單一的,一個接口的修只對響應的實現類有影響,與其他的接口無關,這個就是從接口級別上來展示單一職責
接下來就是方法級別來展示單一職責:
創建一個類Method
寫一個方法updataUserInfo 參數 可以更新userName 姓名 address 地址

拆分如下

這樣兩個方法的職責就是單一切清晰的,這樣關于方法的單一職責就展示出來了。
在我們實際的開發中如果類都遵循單一職責可能會導致類太多出現爆炸,
所以我們的接口和方法一定要展示單一職責,類的單一職責就看項目的情況而定。

總結

以上是生活随笔為你收集整理的java设计模式之设计原则③单一职责原则的全部內容,希望文章能夠幫你解決所遇到的問題。

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