iT邦幫忙

0

把新增、修改、查詢、刪除這四個功能寫在一個class是否還符合SOLID的單一職責原則(SRP)

  • 分享至 

  • xImage

我本身覺得沒有符合,然後自己也沒有很確定,但是教授問我又不知道該怎麼解釋,有沒有大佬可以舉個例子幫小弟我解惑一下?

看更多先前的討論...收起先前的討論...
fillano iT邦超人 1 級 ‧ 2022-07-27 06:52:15 檢舉
如果某個方法可以新增也可以修改,那就違反SRP。class是要看class的職責,例如你是某dao的class,那增刪改查在一個class裡沒問題吧。
franx0722 iT邦新手 2 級 ‧ 2022-07-27 08:07:04 檢舉
舉例: 買家與賣家 都有相同的功能叫費用計算 如果買家跟賣家都寫在同一個class
那是不是我改買家費用時連同賣家的一起改了
franx0722 iT邦新手 2 級 ‧ 2022-07-27 08:09:51 檢舉
一職責原則 應該不是你想像的"新增、修改、查詢、刪除這四個功能寫在一個class" 而是你class的服務對象有相同功能時應該把它獨立出來
rofellos iT邦新手 2 級 ‧ 2022-07-27 10:32:50 檢舉
你想一下有那一堆功能算甚麼職責? 有明確目的嗎?
rofellos iT邦新手 2 級 ‧ 2022-07-27 10:35:14 檢舉
你只是重覆做了你api原有的功能
rofellos iT邦新手 2 級 ‧ 2022-07-27 10:36:25 檢舉
你無法解釋就是沒有符合SOLID的單一職責原則
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

4
海綿寶寶
iT邦大神 1 級 ‧ 2022-07-27 09:35:27
最佳解答

Single Responsibility Principle states that
A class must have only one reason to change.

重點是 one reason 不是 one method/function

依照以下這兩篇的說法
只要「增刪查改是針對單一對象」就算符合 SRP
第1篇
第2篇

2
shihpeng
iT邦見習生 ‧ 2022-08-02 15:52:16

是,完全符合。
如果有時間可以參考我的影片解說: https://www.youtube.com/watch?v=e0UOuQ_lCUY

我要發表回答

立即登入回答