Intro

剛開始處理非同步的問題時,想要自己寫一個可以完美處理各種 callback 的系統。雖然那時候已經知道有一套玩意兒叫 Rx ,但還是死撐著想自己寫。最後的結果當然是…寫出了一坨只有當下的自己才懂的東西。不過也學到用閉包處理 callback 以及用物件包裝 function 等等的…邪門歪道(?)。

最後在某人的大力推薦(?)下,還是回歸正途,來學學大家都在用的 ReactiveX 吧!

簡報版

最近還是在閱讀一些 Google Android 範例,有個叫做 Dagger 的東西常常出現,讓人以為又要開始算Hermitian HH^{\dagger} 矩陣了。
該框架引入了一堆Annotation,看得頭昏眼花, Ctrl+B 追了半天什麼心得都沒有(誤)

好啦,亂扯一通。大家都知道 Dagger 在做的事情是依賴注入 (Dependency Injection, DI) ,那它到底在幹嘛?我們幹嘛要用它?

網路上關於DI的文章隨便抓都一大把,看得頭昏眼花。
為了避免自己放棄,乾脆自己來寫一篇,希望不會誤人子弟。

由於剛開始研究 Dagger 的時候是直接從 Android 專案中的範例開始的,殊不知, Dagger 為了迎合
Android App 的運行方式而用了一些旁門左道特別的方式來達成依賴注入,使上手難度又再提升一個檔次。

於是這篇文章先不從 Android App 的角度切入,有請 Dagger 官方提供的 Coffemaker 範例來現身說法先。

在這篇文中會使用 Kotlin 語言,接地氣,可以參考看看。