オブジェクト設計&デザパタ 2
■ このスレッドは過去ログ倉庫に格納されています
0784デフォルトの名無しさん
2012/03/18(日) 12:39:23.84Group g(m);
g.add( Text::New("def") );
g.add( Image::New() );
Device * device = deviceFactory.getdevice();
Render render( device );
render->Shell( &g );
render->Shell( Text::New("abc") );
//-----
Render::Shell( IShape* item )
{
device->Shell( item );
}
Render::Shell( IGroup* g )
{
device->push_context( g.context() );
foreach(device->Shell( i ));
device->pop_context();
}
まあ擬似コードだけどな。
Groupをレンダラの内部クラスにする理由がちょっとわからんな。
ブリッジでデバイスと切り離しておけば、レンダラに必要なのはShell(IShape)とShell(IGroup)だけ。
新しいShapeを追加するときはIShapeを継承させて、デバイスにそのクラスのメソッドを追加すればいいんで
レンダラには手を加える必要がない。
■ このスレッドは過去ログ倉庫に格納されています