2010-06-20 43 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

这不是模式。