Что вы называете конструкцией, где конструктор объекта отвечает за все/любые последующие действия. Использование этого класса подразумевает просто создание экземпляра, а затем все это - огонь и-забыть.Как вы называете этот шаблон?
Глупый пример:
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);
}
Edit:
Ну, разница между использованием этого и простой статический метод заключается в том, что вновь созданный объект Order будет использоваться во многих разных местах, а не в функции/потоке/объекте, который его создал.
Я просто создаю объект заказа, он регистрируется с помощью OrderManager, тогда OrderManager закроет заказ позже. Я не бросаю объект прочь, он будет продолжать существовать в приложении.
Я не вижу, как параметр 'type' используется в ctor. Я не знаю названия такого шаблона, но мне не нравится скрывать бизнес-логику в конструкторе. –