对象的构造函数负责所有/任何后续操作的设计是什么?这个类的用法只涉及创建一个实例,然后它就是一劳永逸。
一个愚蠢的例子:
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对象将在许多不同的地方使用,而不是由创建它的函数/ thread /对象使用。
我只是创建订单对象,它使用OrderManager注册自己,然后OrderManager将在稍后关闭订单。我不会将对象扔掉,它将继续存在于应用程序中。
答案 0 :(得分:3)
答案 1 :(得分:2)
这看起来更适合(静态)方法,而不是创建一个然后扔掉的类的实例!
我不确定这是否有名字,我希望不会!也许这是一个众所周知的反模式......
...检查一下:http://geoffrey.vandiest.biz/post/Anti-Pattern-3-Overloaded-Constructor.aspx
答案 2 :(得分:0)
这不是模式。