Design Patterns and Evolution Scenarios

特定のデザインパターンになった後に、どんな要件があって、その要件はそのパターンにどう影響する?


例: Observer

  • 新しい状態変化のメソッドの追加(setX(int), setY(int) --> setX(int), setY(int), setColor(Color))
  • ConcreteObserver の追加
  • 新しい Observer interface の実装(ConcreteObserver implements ObserverA --> ConcreteObserver implements ObserverA, ObserverB)


例: Visitor

  • 新しい ConcreteVisitor の追加
  • 新しい ConcreteElement の追加


etc


で、こういうのを考えることで何が嬉しいのでしょうか、って感じ?