我一次又一次地得到沿这些行的代码,在那里我创建一些对象,然后循环它们以使用另一个类初始化一些属性......
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
进行一些计算,并从其他表中获取一些额外的数据。它们不仅仅是存储在存储库中的数据。他们正在基于每个创建新的 Gizmo 和小部件Thing
,并将它们分配给Thing
的属性。
这让我觉得奇怪的原因是它Thing
不是一个自主的对象。它不能创建自己和子对象。它需要更高级别的代码来创建一个完全完成的对象。我不确定这是否是一件坏事!