私は、アプリケーションの起動方法に関するリファクタリング作業を任されています。基本的に、GUI アプリケーションのスタートアップ コードに依存する多数のコンソール アプリがあり、出荷する必要があるライブラリや、他のモジュールが宣言する必要のある依存関係に影響を与える偽の依存関係を引き起こします。
そこで、単純なスタートアップ フレームワークを作成しました。基本的には、一連の Runnable オブジェクトをリストに入れ、それらを順番に実行するだけで、動作します。
しかし、私は考えていました-私たちはすでにプロジェクトにPicoContainerを持っているので、起動時に実行する必要があるこれらすべてのものはPicoContainerにスローされる可能性があり、Startableを実装すると起動します...
しかし、それらの間の順序を指定したい場合もあります。たとえば、アプリケーションが起動中であることを示すヘッダーをログに書き込む前に、他のコンポーネントがログに書き込むことは望ましくありません。インジェクションの依存関係を導入することで順序付けを導入できることはわかっていますが、この場合、これはハックのように感じます。全て。
とはいえ、PicoContainerの起動順序を制御できれば良さそうなので、何か方法はないでしょうか?
または、単純にして、Runnable のリストに固執することもできます。結局のところ、それは機能します。