コンポーネントの可用性を監視するアプリケーションを設計しています。
そのため、まず、可用性チェック(ジョブなど)を定期的に実行するスケジューラを用意します。
監視するコンポーネントがいくつかあり(将来的にはさらに多くのコンポーネントがサポートされる予定です)、それぞれについて、使用可能かどうかを確認するためのさまざまな方法があります。
そのため、 verifyと呼ばれる抽象ブールメソッドを使用して抽象ComponentStatusVerifierクラスを実行し、各コンポーネントに対して、特定の検証戦略を実装するためのサブクラスを作成することを考えていました。
ただし、問題はもう少し複雑です。アプリケーションは、2つの異なるプラットフォーム(サーバーなど、将来的にはより多くのプラットフォームをサポートする可能性があります)での実行をサポートすることになっています。監視するコンポーネントのセットは、アプリケーションが展開されているプラットフォームによって異なります。
宛先サーバーごとに個別にアプリケーションを構築することも、構成を通じてアプリケーションが実行されている場所をアプリケーションに通知することもできます。したがって、問題は、アプリケーションが実行されている場所をアプリケーションに認識させる方法ではありません。
私が持っている質問は、これらの実行モードをサポートすると同時に、個々のクラスの高い凝集度を失わないように、アプリケーションの設計をどのように補完するかです。