『拡張装備(プラグイン) 夢幻召喚(インストール)!!!』
...あれ?なんかエラーになってるんですけど
イリヤさん mainの実装(詠唱)を忘れていますよ。Pluginの型を用意して、どう使うかちゃんと唱えてください
うん、わかった
「──告げる! 汝の身は我に! 汝の剣は我が手に! 聖杯のよるべに従い この意この理に従うならば応えよ! 誓いを此処に! 我は常世総ての善と成る者! 我は常世総ての悪を敷く者──! 汝 三大の言霊を纏う七天! 抑止の輪より来たれ 天秤の守り手──!」
『拡張魔法(プラグイン) 夢幻召喚(インストール)!!!』
『エクスカリバーーーーー!!!!!!』
今度はうまくいった...
ちょっと待って、新たにプラグイン追加したら拡張魔法の詠唱(mainの実装)を変更しないとダメなの?
関数名が違ったらそうなりますね。 そうならないように各々のプラグインのインターフェースを内包したスーパークラス(インターフェース)を用意する必要があります。
いんたーふぇーす?
インターフェースとはつなぎ目のことです。プログラムを結びつける役割を果たします。 予めヘッダに定義したり、スーパークラス(インターフェースクラス)を継承させたりして、呼び出す側と呼び出される側で同一の関数名(メソッド)を定義します。
剣士(セイバー)、弓兵(アーチャー)、魔術師(キャスター)というプラグインがあるとして、各々のプラグインのメソッドがえSlash(エクスカリバー)、Shoot、Unleashのように別名で定義すると詠唱(mainの実装)を変更する必要があります。 しかし、FightやActionというようにエントリーポイントを共通にしてやれば詠唱を変更しなくても大丈夫です。
また、今回の場合のスーパークラス(インターフェースクラス)はSprit(英霊)ですね。 SptritPluginPtrと命名すれば、どのプラグインをインストールしても拡張魔法の詠唱を変更しないで済みます。
インターフェースクラスは最初にIがというプレフィックスが付くことが多いです。 IActionとか
わかった、じゃあこうする
『アクショーン!!!!!』
ってダサいよこれ!!