日別アーカイブ: 2009/7/25 土曜日

オブジェクト共有

クラス間でオブジェクト共有が出来たら便利だろうなと、考えていました。

IDを渡すとオブジェクトのポインタを返してくれる、オブジェクト管理者みたいなクラスを作っておけば出来そうかな?いろいろな型のオブジェクトが返るだろうから、

void* getObject(OBJID);

見たいな関数があればいいのかな?と思っていたのですが、void*がなんだか危険なような気がしていました。

結局のところ、void*であると、ポインタを預かっておく分にはいいですが解体時には、デストラクタが呼ばれないようですので、よろしく無いようです。オブジェクトを知っている作成者が解体も実施する必要がありますが、オブジェクト管理者がすべてのオブジェクトの仕様を知っていて生成解体するというのも、変ですよね・・・

オブジェクト共有の仕組みと、オブジェクト(クラス)の独立性を両立するにはどんな設計だといいのかなぁ・・・