[英]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.