Pluggable Behavior

객체의 행동을 어떻게 파라메터화할것인가?

한 클래스의 다른 객체들은 일반적으로 서로 다른 상태와 같은 행위를 가지게 된다. 만약에 다른 로직을 원한다면, 다른 클래스를 쓴다. 우리가 만드는 객체의 90프로는 이렇다. 가끔, 다른 클래스들은 당신이 문제에 대해 어떻게 생각하는가에 대한 효과적인 의사소통을 못 할 수도 있다.(?) 클래스가 많아짐으로써 당신은 짜증이 나고 위협을 받는다. 단 하나의 메소드를 오버라이딩하려고 서브클래싱을 많이 하는것은 낭비다. 또한 이렇게 많이 서브클래싱하면서 유연성이 떨어지게 된다.

Pluggable Behavior를 쓸때에, 고려해야할 것들이 있따.
  • 어느 정도의 유연성을 원하는가?
  • 얼마나 많은 메소드가 동적으로 행동할 것인가?
  • 코드 따라가기가 얼마나 어려운가?
  • 클라이언트가 플러그될 행동을 알 필요가 있는가, 아니면 플러그된 객체 내에 감쳐줘야 하는가?

서로 다른 행동을 유발하는 것에 사용될 변수를 추가하라. 단 하나의 메소드만 오버라이딩된 수백,수천개의 클래스를 만들지 말고, Pluggable Behavior를 사용하자.

해석 점점 이상해진다.--; 이 또한 C++에서는 함수 포인터로 구현할 수 있을 듯 하다.

Retrieved from http://wiki.zeropage.org/wiki.php/PluggableBehavior
last modified 2021-02-07 05:24:00