現在、お仕事のプロジェクトのフレームワークをLiQ Container ベースで作ってるのですが、半年もの間 練り上げた API が実際使ってみると以外に
使いにくい部分もあって、それなりにショックです。
しかし、嘆いていても始まらないので、地道に改良作業を続けています。
その結果、例えば以下のようにModuleの記述を改善することができました。
この改良は見た目以上にインパクトが大きいものです。
なぜなら、改良前のmethodsOfというメソッドは、
実はReflectorというクラスのstaticメソッドをstaticインポート
したものでした。
一番の問題は、
Eclipseがstaticインポートをうまく補完できない(嘘でした。すみません。下のkoichikさんのコメントを参照してください)
ことで、いちいちstaticインポート文を書くのが耐えがたいほどめんどくさい
ものになってしまっていました。
暫く悩んだ後、たどり着いた解決策が改良後のコードです。
同じことがmethodsというstaticフィールドのofメソッドを呼び出すことで
実現されてます。
こういう風にすると、いちいち面倒なimport 文を書かなくてもきれいに
補完がきくようになる、という訳です。
嘘でした。すみません。下のkoichikさんのコメントを参照してください
使いにくい部分もあって、それなりにショックです。
しかし、嘆いていても始まらないので、地道に改良作業を続けています。
その結果、例えば以下のようにModuleの記述を改善することができました。
(改良前) register(Components.createdBy( methodsOf(ObjectMethodModule.class) .withAnnotation(FactoryMethod.class), this)); (改良後) component(created.by( methods.of(this) .withAnnotation(FactoryMethod.class)));
この改良は見た目以上にインパクトが大きいものです。
なぜなら、改良前のmethodsOfというメソッドは、
実はReflectorというクラスのstaticメソッドをstaticインポート
したものでした。
一番の問題は、
ことで、いちいちstaticインポート文を書くのが耐えがたいほどめんどくさい
ものになってしまっていました。
暫く悩んだ後、たどり着いた解決策が改良後のコードです。
同じことがmethodsというstaticフィールドのofメソッドを呼び出すことで
実現されてます。
こういう風にすると、いちいち面倒なimport 文を書かなくてもきれいに
補完がきくようになる、という訳です。
嘘でした。すみません。下のkoichikさんのコメントを参照してください