抽象クラスを用いた、プラグインの作成方法を提案します。
コンパイルせずに、任意のクラスを使うという「プラグイン」の実現です。
ライブラリにするのが伝統的手法ですが、抽象クラスを用いると、任意のクラスをコンパイル抜きで使えます。
命令実行メソッドを、後からオーバーライドする形にすればよいわけです。
まず、基礎クラスとなる、Plugin
クラスを定義します。
このPlugin
クラスを継承し、SamplePlugin
というクラスを作成するとします。
execute()
メソッドをオーバーライドします。
このSamplePlugin
クラスを使うには、クラス名をハードコードしてインスタンス化して使う方法もありますが、ここではcallPlugin()
というメソッドを定義し、任意のプラグイン名を指定すればそのクラスをインスタンス化し、オーバーライドされたexecute()
メソッドを呼び出しています。