完全にモジュールベースのシステムを開発するつもりです。システムベースには、プラグインを見つけて起動し、それらのモジュールが通信する方法を提供できるようにするためのサポートが必要です。理想的には、新しいモジュールを自由に挿入し、未使用のモジュールを自由に削除できるようにする必要があります。モジュールは、利用可能な場合は互いの機能を使用できる必要があります。
このシステムは、さまざまなモジュールで多くのことが発生するシミュレーション システムの基礎として使用する必要があり、他のモジュールはそれに基づいて何かを実行する必要があります。
私が開発しようとしているシステムは Java になります。私の見方では、各モジュールのサブフォルダーを含むフォルダーを作成する予定です。このフォルダーには、名前、発生する可能性のあるイベントなどの情報を含むモジュールを説明する XML が含まれています。この問題を解決するには、カスタム ClassLoader を作成する必要があると思います。
問題は、私のアイデアが実際に通用するかどうかわからないということです。もちろん、実用的なプロトタイプを構築するつもりです。しかし、私はこれまで完全にモジュール化されたシステムに取り組んだことがなく、この問題を解決する最善の方法が何であるかがよくわかりません。
どこから始めればよいですか?この種のシステムの開発中によくある問題や落とし穴はありますか? 分離を維持しながらモジュールを相互に通信させるにはどうすればよいですか (つまり、モジュールを削除しても、それを使用していた別のモジュールは正常なままです)。どこから始めるべきかについてのアイデアを得ることができる、私が読むことができるガイド、仕様、または記事はありますか? それらが Java に基づいていればもっと良いのですが、これは要件ではありません。なぜなら、私が今探しているのはコードではなくアイデアだからです。
フィードバックをお待ちしております。