[討論] FP正在殺死設計模式嗎?
看板Soft_Job (軟體人)作者ohmylove347 (米特巴爾)時間5月前 (2024/06/25 11:02)推噓23(24推 1噓 114→)留言139則, 34人參與討論串1/2 (看更多)
拿策略模式舉例,因為正好在研究這個
http://i.imgur.com/UWc8gR6.jpg
Context 和 Strategy:組合關係,Context 持有 Strategy。
Strategy 和 ConcreteStrategyA/B:實現關係,ConcreteStrategyA 和 ConcreteStrategy
先簡單定義,策略模式是"將相同類型可互相替換的操作封裝成獨立策略,達到在運行時動態替換"的一種設計模式
Java要實現的話,比較普遍的作法:
1. 定義策略Class or Interface
2. 實現具體策略類
3. 創建上下文類管理策略的設定與使用
但是使用一些天生自帶FP特性的語言(現在用Kotlin
發現策略模式好像根本不需要
最簡單的方法是直接利用高階函數,把需要的操作當參數傳進去用
連定義Interface都省了,只要函數簽名相同都行
如果要限制操作種類
只要寫個枚舉類整理一下全部的操作就好,也不用額外的策略類跟上下文
還能隱藏策略的具體實現只讓選擇本身可見
看了看,好像策略模式用不太到?
是不是高階函數太好用了
只要關於動態行為的時候
用高階函數加個函數參數搞定
FP是不是某種程度上殺死設計模式了?
-----
Sent from JPTT on my Google Pixel 7 Pro.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.159.79 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1719284536.A.657.html
※ 編輯: ohmylove347 (114.136.159.79 臺灣), 06/25/2024 11:05:01
※ 編輯: ohmylove347 (114.136.159.79 臺灣), 06/25/2024 11:06:15
推
06/25 11:12,
5月前
, 1F
06/25 11:12, 1F
→
06/25 11:12,
5月前
, 2F
06/25 11:12, 2F
※ 編輯: ohmylove347 (114.136.159.79 臺灣), 06/25/2024 11:14:51
→
06/25 11:14,
5月前
, 3F
06/25 11:14, 3F
推
06/25 11:53,
5月前
, 4F
06/25 11:53, 4F
→
06/25 13:22,
5月前
, 5F
06/25 13:22, 5F
→
06/25 13:22,
5月前
, 6F
06/25 13:22, 6F
→
06/25 13:23,
5月前
, 7F
06/25 13:23, 7F
推
06/25 13:52,
5月前
, 8F
06/25 13:52, 8F
→
06/25 13:52,
5月前
, 9F
06/25 13:52, 9F
→
06/25 13:52,
5月前
, 10F
06/25 13:52, 10F
→
06/25 13:52,
5月前
, 11F
06/25 13:52, 11F
→
06/25 13:53,
5月前
, 12F
06/25 13:53, 12F
→
06/25 14:00,
5月前
, 13F
06/25 14:00, 13F
推
06/25 14:37,
5月前
, 14F
06/25 14:37, 14F
→
06/25 14:38,
5月前
, 15F
06/25 14:38, 15F
推
06/25 14:39,
5月前
, 16F
06/25 14:39, 16F
推
06/25 15:30,
5月前
, 17F
06/25 15:30, 17F
→
06/25 15:30,
5月前
, 18F
06/25 15:30, 18F
→
06/25 15:50,
5月前
, 19F
06/25 15:50, 19F
→
06/25 15:50,
5月前
, 20F
06/25 15:50, 20F
推
06/25 16:05,
5月前
, 21F
06/25 16:05, 21F
→
06/25 16:06,
5月前
, 22F
06/25 16:06, 22F
→
06/25 16:06,
5月前
, 23F
06/25 16:06, 23F
→
06/25 16:07,
5月前
, 24F
06/25 16:07, 24F
→
06/25 16:07,
5月前
, 25F
06/25 16:07, 25F
推
06/25 16:49,
5月前
, 26F
06/25 16:49, 26F
→
06/25 16:49,
5月前
, 27F
06/25 16:49, 27F
推
06/25 16:50,
5月前
, 28F
06/25 16:50, 28F
→
06/25 16:51,
5月前
, 29F
06/25 16:51, 29F
→
06/25 16:51,
5月前
, 30F
06/25 16:51, 30F
→
06/25 16:51,
5月前
, 31F
06/25 16:51, 31F
推
06/25 16:53,
5月前
, 32F
06/25 16:53, 32F
→
06/25 16:53,
5月前
, 33F
06/25 16:53, 33F
→
06/25 16:57,
5月前
, 34F
06/25 16:57, 34F
→
06/25 16:57,
5月前
, 35F
06/25 16:57, 35F
→
06/25 16:58,
5月前
, 36F
06/25 16:58, 36F
推
06/25 18:41,
5月前
, 37F
06/25 18:41, 37F
→
06/25 18:41,
5月前
, 38F
06/25 18:41, 38F
還有 61 則推文
→
06/26 11:38,
5月前
, 100F
06/26 11:38, 100F
→
06/26 11:38,
5月前
, 101F
06/26 11:38, 101F
→
06/26 11:38,
5月前
, 102F
06/26 11:38, 102F
→
06/26 11:38,
5月前
, 103F
06/26 11:38, 103F
推
06/26 12:54,
5月前
, 104F
06/26 12:54, 104F
→
06/26 14:01,
5月前
, 105F
06/26 14:01, 105F
→
06/26 14:19,
5月前
, 106F
06/26 14:19, 106F
→
06/26 15:46,
5月前
, 107F
06/26 15:46, 107F
→
06/26 15:49,
5月前
, 108F
06/26 15:49, 108F
→
06/26 20:30,
5月前
, 109F
06/26 20:30, 109F
推
06/26 20:36,
5月前
, 110F
06/26 20:36, 110F
→
06/26 20:36,
5月前
, 111F
06/26 20:36, 111F
→
06/26 20:36,
5月前
, 112F
06/26 20:36, 112F
→
06/26 21:19,
5月前
, 113F
06/26 21:19, 113F
→
06/26 22:55,
5月前
, 114F
06/26 22:55, 114F
→
06/26 22:56,
5月前
, 115F
06/26 22:56, 115F
→
06/26 22:56,
5月前
, 116F
06/26 22:56, 116F
→
06/26 22:56,
5月前
, 117F
06/26 22:56, 117F
→
06/26 22:57,
5月前
, 118F
06/26 22:57, 118F
→
06/26 22:58,
5月前
, 119F
06/26 22:58, 119F
→
06/26 22:58,
5月前
, 120F
06/26 22:58, 120F
→
06/26 22:58,
5月前
, 121F
06/26 22:58, 121F
→
06/26 23:24,
5月前
, 122F
06/26 23:24, 122F
推
06/27 01:34,
5月前
, 123F
06/27 01:34, 123F
→
06/27 01:34,
5月前
, 124F
06/27 01:34, 124F
→
06/27 01:34,
5月前
, 125F
06/27 01:34, 125F
→
06/27 01:34,
5月前
, 126F
06/27 01:34, 126F
→
06/27 17:10,
5月前
, 127F
06/27 17:10, 127F
→
06/27 17:10,
5月前
, 128F
06/27 17:10, 128F
推
06/27 19:23,
5月前
, 129F
06/27 19:23, 129F
→
06/27 20:28,
5月前
, 130F
06/27 20:28, 130F
→
06/27 20:28,
5月前
, 131F
06/27 20:28, 131F
推
06/29 10:00,
4月前
, 132F
06/29 10:00, 132F
推
07/06 17:14,
4月前
, 133F
07/06 17:14, 133F
→
07/06 17:14,
4月前
, 134F
07/06 17:14, 134F
→
07/06 17:15,
4月前
, 135F
07/06 17:15, 135F
→
07/06 17:16,
4月前
, 136F
07/06 17:16, 136F
→
07/06 17:16,
4月前
, 137F
07/06 17:16, 137F
推
07/09 23:42,
4月前
, 138F
07/09 23:42, 138F
→
07/09 23:42,
4月前
, 139F
07/09 23:42, 139F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
Soft_Job 近期熱門文章
50
200
15
92
PTT職涯區 即時熱門文章