Re: [問題] 實作內容相同但很可能改變的function
※ 引述《BigLoser (大魯蛇)》之銘言:
→
08/20 16:28,
08/20 16:28
: 原本想用繼承,可是這些計算公式,是只有當中有一些不同,
: 專屬部分在每個狀況會有不同,
: 可是現在就算我計算公式1和2當讓大家共用,
: 又遇到另一個問題,就是未來a的計算公式1可能會變的不同,
: 這樣共用的部分就不行了,等於要獨立抽出來,
: 這種情況又該如何呢?
→
08/20 20:31,
08/20 20:31
→
08/20 20:35,
08/20 20:35
→
08/20 20:37,
08/20 20:37
→
08/20 21:06,
08/20 21:06
→
08/20 21:06,
08/20 21:06
我覺得你已經在鑽牛角尖了
沒有人規定程式裡不能有同樣的東西
一般會建議把相同的地方 extract 出來, 是因為這些東西是共用的
當你需要修改共用邏輯時, 只要修改 extract 出來的部分即可
這樣可以降低維護成本, 以及避免修改時發生錯誤
如果別人(或未來的你)需要閱讀你的程式, 也可以讓他們比較方便
但是即使兩個東西長得一樣, 不代表它們的邏輯就是共用的
以你的狀況而言, 既然「未來a的計算公式1可能會變的不同」
那麼就代表 a 與 b 根本就不是同一個東西, 只是剛好都用了計算公式 1
所以要嘛你還是把計算公式 1 抽出, 然後當 a 未來改變時改使用其他公式實作
要嘛就是你一開始就根本不應該把 a 和 b 看成同一類東西
Method extraction 這件事情本身就是用來降低維護與程式閱讀成本
所以當你在思考要不要, 以及要怎麼做時, 就應該把這兩件事當成目標
如果一味遵從教條, 為 refactor 而 refactor, 這些準則就失去意義了
--
→
08/10 00:59,
08/10 00:59
→
08/10 02:16,
08/10 02:16
→
08/10 20:18,
08/10 20:18
→
08/10 20:19,
08/10 20:19
→
08/10 20:21,
08/10 20:21
→
08/11 20:23,
08/11 20:23
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.94.175
※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1408541632.A.702.html
推
08/20 22:59, , 1F
08/20 22:59, 1F
推
08/20 23:04, , 2F
08/20 23:04, 2F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章