小弟在設計系統的功能時,時常會不知該用什麼準則來判斷適合的模式
之前曾在某個網站中看到同一個問題,拿來套進 23 個模式之中
當下看完後,心想:所以大部份的問題都可以任意套用模式?
應該不是這樣子,否則四人幫就沒有必要把它們分成三大類了
那到底該如何決擇正確的模式
這個問題一直困擾著…
例如訂單依國別計算不同費用
這問題是用工廠好?還是策略好?
懇請大大們解惑
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.234.121.60 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1636039147.A.7F6.html→ qwer3388591樓策略吧 為啥會用工廠? 11/04 23:26
→ qwer3388592樓其實很多時候不用為套而套吧會把簡單東西複雜化 11/04 23:26
WaterLengend3樓等你想怎樣寫你最好改也最能看得懂的時候,不知不 11/04 23:28
→ WaterLengend4樓覺就會用上了。 11/04 23:28
viper97095樓推樓上 11/04 23:30
vi0002466樓你聽過太極拳或獨孤九劍嗎 不要拘泥於招式 無招勝有招 11/04 23:34
prag2227樓我自稱DP哥 工廠模式COMBO策略模式 很常用的 11/04 23:46
→ devilkool8樓最好的方法就是你寫一遍 11/05 00:02
unixxxx9樓DP 是武功 SOLID 是心法 先練心法才看得懂武功 11/05 00:15
lturtsamuel10樓認真說 遇到的時候問題會告訴你該用什麼模式 不然就 11/05 00:46
→ lturtsamuel11樓是問題還不夠清楚 這時候最好別亂用 11/05 00:46
→ lturtsamuel12樓可以去看舊程式碼或開源專案 感受一下別人用設計模式 11/05 00:48
→ lturtsamuel13樓是在幹嘛 只看書上的其實你都感受不到那個規模 11/05 00:48
→ lturtsamuel14樓像 visitor pattern 就可以去看看 rust serde 函式庫 11/05 00:48
→ lturtsamuel15樓怎麼用的 11/05 00:48
lturtsamuel16樓濫用模式跟不用模式硬要選一個 大家應該都會選後者 11/05 00:54
t6414117樓先重構, 重構的過程有機會發現變成某幾種模式 11/05 01:35
→ t6414118樓的形狀 11/05 01:35
t6414119樓但如果情境單純, 也不用硬要重構或是找出什麼模式就是 11/05 01:41
umum2920樓先重構+1 如果你發現一直寫重複的代碼就是一種徵兆 11/05 01:52
→ umum2921樓用工廠的情況也不少 例:多個supplier的connectio量身訂作 11/05 01:55
qscesz145622樓模式是在解決你的需求 所以很常都會有一些變形或組合 11/05 02:00
→ qscesz145623樓依據自己經驗去設計 最後會發現你的東西就是某個模 11/05 02:00
→ qscesz145624樓式的樣子 11/05 02:00
→ peter9825樓你可以先挑一個來玩 builder最容易上手最好改 11/05 03:11
OnlyRD26樓一開始先別想太多設計模式是要慢慢修剪的 11/05 03:41
→ RumiManiac27樓你可以讀 Refactoring to patterns 11/05 07:24
→ RumiManiac28樓首先要能辨識 smells, 然後透過重構改為設計模式 11/05 07:24
→ RumiManiac29樓不只可以學習何時該使用設計模式,也能避免過度設計 11/05 07:26
RINPE30樓公司的東西的話 很簡單 都是看薪水給多少 11/05 07:30