私は通常、
- 疎結合アーキテクチャ
- プラグイン/アドイン アーキテクチャ
違いは主にカーディナリティにあります。
外部ライブラリで AI アルゴリズムを定義し、ユーザーが元のアプリケーションを再コンパイルせずにアルゴリズムを置き換える方法を提供するとします。疎結合のアプリケーションがあります。
これは、データ アクセス レイヤーを変更して SQL Server または Oracle と通信できる、シュリンク ラップされたエンタープライズ ソフトウェアで行われているのを見てきました。それでも、それはどちらかです。
一方、アドインアーキテクチャ は、アプリケーションにすぐに使用できるデフォルトの機能が付属しているアーキテクチャですが、ユーザーはゼロまたは多くの異なる動作を追加できます。 場合によっては、さまざまなオプションを一覧表示する追加の UI 要素があります。例としては、Photoshop 用のさまざまな画像処理フィルター プラグインがあります。私はPlug-inよりもAdd-inという用語を好みます。これはまさに、単にアプリケーションを置き換えるのではなく、動作をアプリケーションに追加できるようにすることを目標として定義しているからです。(確かに、プラグインもそのシグナルのようなものですが、アドインはもう少し明示的だと思います。)
アプリケーションの外観を変更できる場合、通常はこれをスキニングと呼びますが、これはプラグイン アーキテクチャの特殊なケースにすぎないと主張することもできます。