1. ホーム
  2. language-agnostic

拡張性のあるソフトウェア(プラグインアーキテクチャ)を設計するには?[クローズド]

2023-08-30 13:48:03

質問

私は、拡張可能なソフトウェアを設計する方法、すなわち、他の人がアドオン/プラグインを書いて機能を追加できるようにする方法について話すいくつかのリソースが必要です。

何かお勧めのものはありますか?このテーマを論じた書籍はありますか?

理論が少しで、具体例がたくさん載っているような、短くて要点がまとまっているものがいいです。

特定の言語をターゲットにしているわけではなく、どの言語でも実装できるように、核となる考え方を理解できるようになりたいです。

同じ理由で、誰かが作ったフレームワークを使うのは好みません(そのフレームワークがあまり高レベルでない限り、すなわち 今のところ、私はこのテーマについて自分自身を教育し、それを実装するさまざまな方法を試したいだけなのです。さらに、フレームワークは通常、ユーザーがそのテーマに関する知識を有していることを前提としています。

UPDATE

私はOOPやクラスが継承されることを許可することについて尋ねているのではありません。システム上に展開されるアプリケーションを設計し、展開された後にサードパーティのアドオンによって拡張できるようにすることについて話しているのです。

たとえば、Notepad++ にはプラグイン アーキテクチャがあり、plugins フォルダに .dll ファイルを置くと、カラー ピック、スニペット挿入、その他多くの機能 (幅広い機能) など、アプリケーションにはなかった機能が追加されます。

どのように解決するのですか?

もし私たちが.NETについて話しているのであれば、次のことを試してみてください。 VBScriptで.NETアプリケーションをスクリプト化する を試してみてください。そこにはたくさんの具体例があります。

以下は、さまざまなアプリケーション拡張技術を実装したサイトです。