在研究互联网上的一些之后,我的头脑正在试图弄清楚哪种是最好的设计模式。我试图解决的问题是创建对象组合。
例如,我有对象组合,其中需要使用定义数量的Task对象创建Event对象:
事件1 - 任务1,任务2,任务3
事件2 - 任务2,任务3
理想情况下,我想要一种创建Event对象的简单方法,而不需要:
Event.Add(Task1)
Event.Add(Task2)
等等
理想情况下,我希望看到类似Event1.Add(Task1).Add(Task2).Add(Task3)。
我还需要能够将事件中的任务作为单独的对象自行检索。
任务需要重复使用。
答案 0 :(得分:1)
public class Event {
public Event(IEnumerable<Task> tasks) {...}
}
使用类似的构建器api
new EventBuilder().AddTask(....).AddTask(....).AddTask(....).Build();
答案 1 :(得分:0)
你可以这样做一点流利的foo ......
var e = new EventFoo().Add(new Task()).Add(new Task())
;
public class EventFoo
{
public EventFoo()
{
Tasks = new List<Task>();
}
public List<Task> Tasks { get; private set; }
public EventFoo Add(Task task)
{
Tasks.Add(task);
return this;
}
}
如果您要创建一组常规事件,您还可以将其创建移至工厂。