>>587
> デメリットってどんな?
「発送されたらもうキャンセルできない」という話の流れで出したコードだけど、それに沿って説明すれば
実際には>>583

class Order {
  Canceler canceler;  // この結合も良くない
  void cancel() {
    calceler.cancel(this);
  }
  void processCancel() {
    // 実際のキャンセル処理はOrderモデルしか知らない
  }
}

class Canceler {
  boolean isCancelable(Order order) {
    // order.getState()でも呼ぶ?
  }
  void cancel(Order order) {
    if (!isCancelable(order) {
      order.processCancel();
    }
  }
}

みたいなヒドイことになるのだが

逆に、メリットってなんだろうか?