什麼是對象的構造函數負責所有/任何後續操作的設計。這個類的使用涉及到簡單地創建一個實例,然後它是所有人都忘記了。你如何稱此模式?
是一個愚蠢的例子:
public class Order
{
public Order(int ammount,Product type)
{
Ammount = ammount;
Namespace.OrderManager.RegisterNewOrder(this);
Namespace.WarehouseManager.Substract(this);
Namespace.OrderManager.Invoice(this);
Namespace.DeliveryManager.Deliver(this);
.. well, you get the point;
}
// Called back later from DeliveryManager
public void OrderHasBeenDelivered()
{
//save some data to the DB, or notify the UI
}
// Called back later from OrderManager
public void OrderHasBeenCanceled()
{
Namespace.DeliveryManager.CancelDelivery(this);
}
}
... Order類的用法:
public void CreateOrder_click(object sender, EventArgs e)
{
new Order(50, CDs);
new Order(10, DVDs);
new Order(10, DVDs);
}
編輯:
好,使用其和一個簡單的靜態的區別方法,就是新創建的Order對象將被用在許多不同的地方,而不是由創建它的函數/線程/對象來使用。
我簡單地創建了訂單對象,它向OrderManager註冊自己,然後訂單管理器將在稍後關閉訂單。我不會丟棄這個對象,它會繼續存在於應用程序中。
我不明白'ctype'參數是如何在ctor中使用的。我不知道這種模式的名稱,但我不喜歡在構造函數中隱藏業務邏輯。 – 2010-06-20 19:29:34