時々、これらの行に沿ったコードで終わります。そこで、いくつかのオブジェクトを作成し、それらをループして、別のクラスを使用していくつかのプロパティを初期化します...
ThingRepository thingRepos = new ThingRepository();
GizmoProcessor gizmoProcessor = new GizmoProcessor();
WidgetProcessor widgetProcessor = new WidgetProcessor();
public List<Thing> GetThings(DateTime date)
{
List<Thing> allThings = thingRepos.FetchThings();
// Loops through setting thing.Gizmo to a new Gizmo
gizmoProcessor.AddGizmosToThings(allThings);
// Loops through setting thing.Widget to a new Widget
widgetProcessor.AddWidgetsToThings(allThings);
return allThings;
}
...それは、まあ、間違っていると感じます。
- これは悪い考えですか?
- ここで使用しているアンチパターンの名前はありますか?
- 代替手段は何ですか?
編集:と の両方がオフになり、計算を実行し、他のテーブルから追加のデータを取得する必要がある
GizmoProcessor
と仮定します。WidgetProcessor
それらは、リポジトリに格納された単なるデータではありません。それぞれに基づいて新しいギズモとウィジェットを作成し、それらをのプロパティThing
に割り当てています。Thing
これが私にとって奇妙に感じる理由は、それThing
が自律的なオブジェクトではないからです。それ自体と子オブジェクトを作成することはできません。完全に完成したオブジェクトを作成するには、上位のコードが必要です。それが悪いことなのかどうかはわかりません!