PsycleWTL:「ボケ」防止のための設計メモ...。

公開:2005-01-17 08:35
更新:2020-02-15 04:36
カテゴリ:psycle wtl,windows,audio,tracker

※インターフェース定義
・下記の場合、インターフェースを定義する
・・バイナリレベル(EXE、DLL)で実装を分ける場合
ドライバやスキン、マシンやVSTプラグインなど。
・インターフェースはCOM互換ではない。オートメーションインターフェースを外部に公開するときは別途ラッパクラスを用意する。
・リソースの解放が必要なインターフェースは必ずiDisposableインターフェースを継承する。iDisposableインターフェースは下記のとおり。

namespace model {
/// 破棄可能インターフェース
interface iDisposable
{
void Release();///< オブジェクト破棄
};
}
・iDisposable::Release()でオブジェクトを破棄させるため、実装クラスではデストラクタをprivate定義し直接deleteさせないようにする。
・iDisposable::Release()を呼ぶタイミングはスマートポインタクラスに任せる
・プロパティメソッドは
declspec(property(get=..,put=..))を定義する