2010-06-20 2 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); 
    } 
} 

... 주문 클래스의 사용 :

public void CreateOrder_click(object sender, EventArgs e) 
    { 
      new Order(50, CDs); 
      new Order(10, DVDs); 
      new Order(10, DVDs); 

    } 

편집 :

음,이 간단한 정적을 사용 사이의 차이 메서드는 새로 생성 된 Order 객체가 생성 된 함수/스레드/객체가 아니라 여러 다른 장소에서 사용된다는 것입니다.

단순히 Order 오브젝트를 작성하고 OrderManager로 등록한 후 OrderManager는 나중에 해당 순서를 닫습니다. 내가 객체를 멀리 던지지는 않는다. 그것은 앱에 계속 존재할 것이다.

+0

'type' 매개 변수가 ctor에서 어떻게 사용되는지 알지 못합니다. 그런 패턴의 이름을 모르지만 생성자에서 비즈니스 로직을 숨기는 것이 맘에 들지 않습니다. –

답변

3
  • "나쁜 아이디어"어쩌면 이것은 잘 알려진 안티 패턴은 ...

    이 ... 이것 좀 봐입니까?
  • "신뢰할 수 없음"?
  • "절차상의 혼란"?
  • "안티 객체 지향 안티 패턴"?
+0

lol :-)) 그리고 두 번째 롤, 원인은 15 자 이상이어야합니다. – Radu094

0

이것은 패턴이 아닙니다.

관련 문제