对象设计模式的定义组合

Defined combinations of objects design pattern

我在互联网上研究了一些之后试图弄清楚哪个是最好的设计模式,这让我很头疼。我要解决的问题是对象组合的创建。

例如,我有对象组合,其中需要使用定义数量的任务对象创建事件对象:

事件 1 - 任务 1、任务 2、任务 3

活动 2 - 任务 2、任务 3

理想情况下,我想要一种创建 Event 对象的简单方法,而不需要像这样的东西:

Event.Add(Task1)
Event.Add(Task2)

等等等等 理想情况下,我想看到类似 Event1.Add(Task1).Add(Task2).Add(Task3).

的内容

我还需要能够将事件中的任务作为单独的对象单独检索。

并且任务需要可重复使用。

你可以像这样做一点流利的 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;
    }
}

如果您要创建一组常规事件,也可以将它们的创建移至工厂。

Builder Pattern

怎么样
public class Event {
    public Event(IEnumerable<Task> tasks) {...}
}

像这样的建筑商 api

new EventBuilder().AddTask(....).AddTask(....).AddTask(....).Build();