オブジェクト設計&デザパタ
■ このスレッドは過去ログ倉庫に格納されています
0154デフォルトの名無しさん
2011/11/10(木) 00:59:52.83本体アプリから呼ばれる部分のパッケージ(Base)は一番安定している筈。
で、プラグイン固有機能を実装するパッケージ(Derived)はBaseに依存している。
ここまではいい。
困ってるのは、
「Base内にあるDLLのエントリポイントでDerivedに属するクラスを生成するのはADP違反じゃないの?」
という点。(ADPってパッケージの依存関係を循環させんなってやつね)
Base内のEntryPoint.cpp(仮名)でonLoadが最初に呼ばれるとして、擬似コードがこんな感じ。
BOOL __cdecl onLoad( char *path )
{
gPlugin = new DerivedPlugin( path );
return gPlugin->onLoad();
}
別のプラグイン作成でBaseを流用したとき、毎回この関数を修正するのは変な気がするんだけど…。
上手く説明出来てなかったらすんません。
■ このスレッドは過去ログ倉庫に格納されています