2016-12-28 26 views
4

我現在在一個項目中使用Scaldi,我正在學習它,目前看起來不錯,但我仍然沒有弄清楚它提供的實際功能超過指南/果汁。Scaldi和Guice有什麼區別

這兩個框架之間的實際區別是什麼?

Scaldi更多功能導向?

如果我從一個移動到另一個,我會失去/獲得什麼?

回答

4

吉斯是一個Java庫,因此,其也用Java 習語和共同模式(它在很大程度上使用註釋和 反射)的方面來實現。 Scaldi從另一方面實現了在斯卡拉的常見模式和習語中的 。所以它使用隱式參數,類型類,宏,類型標籤等。scaldi的一個重要目標是避免使用註釋,反射和運行時字節碼 操作。儘管它的很小一部分使用scala 反射,但大多數情況下它是無反射的。這意味着 你負責實例化你的類(這不是通過 反射完成的)。作爲其直接結果,scaldi使用隱式注入器參數,這對於實現註釋/無反射注入機制是必需的。 Scaldi也有 幾個功能,我沒有看到guice,如conditional bindings,property injectormacro for constructor injector(其中 類似於macwire,但使用scaldi的注入機制)。

Source