2010-06-20 27 views
1

什麼是對象的構造函數負責所有/任何後續操作的設計。這個類的使用涉及到簡單地創建一個實例,然後它是所有人都忘記了。你如何稱此模式?

是一個愚蠢的例子:

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註冊自己,然後訂單管理器將在稍後關閉訂單。我不會丟棄這個對象,它會繼續存在於應用程序中。

+0

我不明白'ctype'參數是如何在ctor中使用的。我不知道這種模式的名稱,但我不喜歡在構造函數中隱藏業務邏輯。 – 2010-06-20 19:29:34

回答

3
  • 「壞主意」?
  • 「無法測試」?
  • 「程序性混亂」?
  • 「反對象導向的反模式」?
+0

lol :-))然後第二個哈哈,導致評論必須是15個字符分鐘 – Radu094 2010-06-20 19:46:48

0

這不是模式。