1

私が三目並べゲームを作成し、ミニマックスを使用して人間/コンピューターの対戦相手をプレイするとします。他の誰かが、コードで表現された新しい意思決定のアイデアを持ってきました。元のコードを変更せずに、彼が私の在庫のアルゴリズムの代わりにそのアルゴリズムを使用する方法を作成した場合、それは私がプラグイン可能なソフトウェアを作成したことを意味しますか (その新しい検索ルーチンはプラグインではありませんか)? また、誰かがピースを変更する方法を書くことができるようにしたらどうなりますか? それはスキニングですか、プラガブルですか、またはその両方ですか?

ありがとう。

4

1 に答える 1

2

私は通常、

  • 疎結合アーキテクチャ
  • プラグイン/アドイン アーキテクチャ

違いは主にカーディナリティにあります。

外部ライブラリで AI アルゴリズムを定義し、ユーザーが元のアプリケーションを再コンパイルせずにアルゴリズムを置き換える方法を提供するとします。疎結合のアプリケーションがあります。

これは、データ アクセス レイヤーを変更して SQL Server または Oracle と通信できる、シュリンク ラップされたエンタープライズ ソフトウェアで行われているのを見てきました。それでも、それはどちらかです。

一方、アドインアーキテクチャ は、アプリケーションにすぐに使用できるデフォルトの機能が付属しているアーキテクチャですが、ユーザーはゼロまたは多くの異なる動作を追加できます。 場合によっては、さまざまなオプションを一覧表示する追加の UI 要素があります。例としては、Photoshop 用のさまざまな画像処理フィルター プラグインがあります。私はPlug-inよりもAdd-inという用語を好みます。これはまさに、単にアプリケーションを置き換えるのではなく、動作をアプリケーションに追加できるようにすることを目標として定義しているからです。(確かに、プラグインもそのシグナルのようなものですが、アドインはもう少し明示的だと思います。)

アプリケーションの外観を変更できる場合、通常はこれをスキニングと呼びますが、これはプラグイン アーキテクチャの特殊なケースにすぎないと主張することもできます。

于 2014-03-19T15:17:43.540 に答える