Как вы называете эту модель? - PullRequest
1 голос
/ 20 июня 2010

Что вы называете дизайном, где конструктор объекта отвечает за все / любые последующие действия. Использование этого класса включает в себя просто создание экземпляра, и тогда все это запускается и забывается.

Глупый пример:

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, а затем OrderManager закрывает заказ позднее. Я не выбрасываю объект как таковой, он будет продолжать существовать в приложении.

Ответы [ 3 ]

3 голосов
/ 20 июня 2010
  • «Плохая идея»?
  • «Непроверенный»?
  • «Процессуальный беспорядок»?
  • «Анти-объектно-ориентированный анти-паттерн»?
2 голосов
/ 20 июня 2010

Это выглядит более подходящим для (статического) метода, чем создание экземпляра класса, который вы затем выбрасываете!

Я не уверен, есть ли у этого имя, я надеюсь, что это не так! Может быть, это хорошо известный анти-паттерн ...

... проверить это: http://geoffrey.vandiest.biz/post/Anti-Pattern-3-Overloaded-Constructor.aspx

0 голосов
/ 21 июня 2010

Это не шаблон.

...