Deletions are marked like this. | Additions are marked like this. |
Line 12: | Line 12: |
== 評価 == * このフレームワークはDIというよりもむしろサービスロケータに近い。ただ、DIはもはや無用の長物と考えているのでそれでよい。 * bindingModuleの受け渡しにimplicitパラメータを用いているところは非常に評価できる。オブジェクトの取得や生成には必ずこれが必要になるものの、常に明示的に受け渡すのは面倒かと思われる。 * しかし、その一方でシステムを構成するすべてのクラスがこのカタチになっていなければならなくなる。一つでもそうでないものがあると、チェインが断ち切られてしまう。もちろん他のDIフレームワークも同じ欠点を持つが。 * デフォルトを指定できるのは良いし、そこで引数指定ができるのもよいが、モックの方は引数が指定できない。つまり、そのままではcontextual injectionはできない。また、この違いがあると、テスト時と本番時の動作の違いが生まれてしまい、うっかりすればテストにならない可能性もある。 |
subcut
https://github.com/dickwall/subcut
ドキュメント
ソース
評価
- このフレームワークはDIというよりもむしろサービスロケータに近い。ただ、DIはもはや無用の長物と考えているのでそれでよい。
- bindingModuleの受け渡しにimplicitパラメータを用いているところは非常に評価できる。オブジェクトの取得や生成には必ずこれが必要になるものの、常に明示的に受け渡すのは面倒かと思われる。
- しかし、その一方でシステムを構成するすべてのクラスがこのカタチになっていなければならなくなる。一つでもそうでないものがあると、チェインが断ち切られてしまう。もちろん他のDIフレームワークも同じ欠点を持つが。
- デフォルトを指定できるのは良いし、そこで引数指定ができるのもよいが、モックの方は引数が指定できない。つまり、そのままではcontextual injectionはできない。また、この違いがあると、テスト時と本番時の動作の違いが生まれてしまい、うっかりすればテストにならない可能性もある。