簡體   English   中英

對象設計模式的已定義組合

[英]Defined combinations of objects design pattern

在研究了一些互聯網設計之后,我的頭很想找出哪種設計是最好的。 我要解決的問題是對象組合的創建。

例如,我有一些對象組合,其中需要使用定義數量的Task對象創建一個Event對象:

事件1-任務1,任務2,任務3

事件2-任務2,任務3

理想情況下,我想要一種簡單的方法來創建事件對象,而無需類似以下內容:

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

等等等理想情況下,我想看到類似Event1.Add(Task1).Add(Task2).Add(Task3)的內容。

我還需要能夠將事件作為單獨的對象從事件中檢索出來。

並且這些任務需要可重用。

建造者模式怎么樣

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

用這樣的構建器api

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

您可以像這樣做一點流利的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;
    }
}

如果您要創建一組常規事件,則還可以將其創建移至工廠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM