iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
影片教學

『請你跟我這樣做』- 30 天 TDD 出一個 SLOT 算分器系列 第 13

Day 13 重構出易抽換的 Random Number Generator

  • 分享至 

  • xImage
  •  

Yes

依賴反轉

為了達到「在不同場景替換不同 Random」的目的,我們必須讓每次的抽換,所付出的開發成本最小化。要達到這目標,有一個最關鍵檔在前面的阻礙:Java 原生的 Random 類別。

應該說,我們的目的是取得亂數,至於是不是 Java 原生的 Random 物件產給我們的,我們並不在乎。那麼,在乎的人是誰?看起來應該是「把這個 System 給啟起來」的人吧!這時,OOP 的「依賴反轉」與「多型」就派上用場了。讓把我們創出來的人,丟一個「能產亂數的工具」給我。這個工具我不在乎它裡面是怎麼做的,用哪家的 Random library,這些我都不管,我只管跟它拿了亂數後去滾我的滾輪。

如此一來,我的邏輯就不會被 Random 的實作給綁死,就能達到動態抽換了。

重構,不要重寫

如同前面一再強調的,這些邏輯本來就都存在,只是觸發的位置要換掉。因此,用重構的,會比重寫一份來得經濟實惠。


上一篇
Day 12 Random 與 Dependency Inversion
下一篇
Day 14 與前端溝通 Spin 後的盤面
系列文
『請你跟我這樣做』- 30 天 TDD 出一個 SLOT 算分器30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言