拡張性のあるソフトウェア(プラグインアーキテクチャ)を設計するには?[クローズド]
質問
私は、拡張可能なソフトウェアを設計する方法、すなわち、他の人がアドオン/プラグインを書いて機能を追加できるようにする方法について話すいくつかのリソースが必要です。
何かお勧めのものはありますか?このテーマを論じた書籍はありますか?
理論が少しで、具体例がたくさん載っているような、短くて要点がまとまっているものがいいです。
特定の言語をターゲットにしているわけではなく、どの言語でも実装できるように、核となる考え方を理解できるようになりたいです。
同じ理由で、誰かが作ったフレームワークを使うのは好みません(そのフレームワークがあまり高レベルでない限り、すなわち も 今のところ、私はこのテーマについて自分自身を教育し、それを実装するさまざまな方法を試したいだけなのです。さらに、フレームワークは通常、ユーザーがそのテーマに関する知識を有していることを前提としています。
UPDATE
私はOOPやクラスが継承されることを許可することについて尋ねているのではありません。システム上に展開されるアプリケーションを設計し、展開された後にサードパーティのアドオンによって拡張できるようにすることについて話しているのです。
たとえば、Notepad++ にはプラグイン アーキテクチャがあり、plugins フォルダに .dll ファイルを置くと、カラー ピック、スニペット挿入、その他多くの機能 (幅広い機能) など、アプリケーションにはなかった機能が追加されます。
どのように解決するのですか?
もし私たちが.NETについて話しているのであれば、次のことを試してみてください。 VBScriptで.NETアプリケーションをスクリプト化する を試してみてください。そこにはたくさんの具体例があります。
以下は、さまざまなアプリケーション拡張技術を実装したサイトです。
関連
-
[解決済み] 山積みされた靴下を効率よく組み合わせるには?
-
[解決済み] JavaScriptでクエリ文字列の値を取得するにはどうすればよいですか?
-
[解決済み】ビットシフト(bit-shift)演算子とは、どのようなもので、どのように機能するのですか?
-
[解決済み】ループや関数をサポートする言語で「goto」の正当な使用例はあるのか?
-
[解決済み】Pythonで最小限のプラグインアーキテクチャを構築する
-
[解決済み] 柔軟なプラグイン・アーキテクチャを実現するには?
-
[解決済み] 直交性」とは何ですか?
-
[解決済み] お気に入りの(賢い)防御的プログラミングのベストプラクティス【非公開
-
[解決済み] なぜナップザック問題は擬似多項式なのか?
-
[解決済み] プログラミングコンテストの出場者は、なぜC++やJavaを使うのか?[終了しました]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン