私のプログラムでは、一部のオブジェクトには他のオブジェクト(依存関係)が必要であり、作成パターンとしてFactoryを使用しています。
では、単純な依存関係の問題を解決するにはどうすればよいですか?
これは、問題を解決するために私が行っていることの例です。必要なオブジェクトをCreateメソッドに送信することがひどく間違っているのではないかどうかを知りたいです。
//AbstractBackground
// - SpecialBackground
// - ImageBackground
// - NormalBackground
class Screen{
List<AbstractBackground> list;
Cursor cursor;
ContentManager content;
public void load(string[] backgroundTypes){
//is this okay? --------------->
AbstractBackground background = BackgroundFactory.Create(backgroundTypes[0], cursor, content);
list.add(background);
}
}
class BackgroundFactory{
static public AbstractBackground Create(string type, Cursor cursor, ContentManager content){
if( type.Equals("special") ){
return new SpecialBackground(cursor, content);
}
if( type.Equals("image") ){
return new ImageBackground(content);
}
if( type.Equals("normal") ){
return new NormalBackground();
}
}
}