Tag: 오라일리
Strategy Pattern 스트래티지 패턴을 액션스크립트로 컨버팅 – Head First Design Pattern
by 세계의끝 on 5.16, 2009, under Design Pattern
이번에는 Head First Design Pattern 의 제 1 장 내용인 스트래티지 패턴(Strategy Pattern : 전략 패턴) 입니다. 역시 이번에도 자바 코드를 액션 스크립트로 컨버팅 하였습니다.
책에는 스트래티지 패턴을 이렇게 정의하고 있습니다.
“스트래티지 패턴(Strategy Pattern)에서는 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. 스트래티지 패턴을 사용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다”
슈퍼클래스에 구체적인 행동에 대한 메서드가 있는 경우 서브클래스에서 의도하지 않은 오류가 발생할 수 있는 가능성이 있습니다. 오리는 무조건 날 수 있을거라고 생각하고 슈퍼클래스인 Duck에 fly() 메서드를 만들고 구체적으로 날라다니는 구현을 한 경우 고무오리나 모형오리도 날라다니는 오류를 책에서 예를 들어 설명하고 있습니다.
그래서 Duck 클래스에서 개별적인 행동을 빼내서 인터페이스로 만들고 그 인터페이스를 구상하는 클래스들을 만들고, Duck 클래스를 상속받아 세부적인 구현을 하는 서브클래스들에서 인터페이스를 통해 구상 클래스를 사용하게 됩니다.
Adapter Pattern 어댑터 패턴을 액션스크립트로 컨버팅 – Head First Design Pattern
by 세계의끝 on 5.14, 2009, under Design Pattern
제가 참여하고 있는 스터디에서 교재로 사용하고 있는 오라일리/한빛출판사에서 발간된 Head First Design Pattern 입니다. 스터디에 대한 이해도를 높이고자 어댑터 패턴에 관한 자바 코드를 액션스크립트 코드로 컨버팅해 보았습니다.
책에는 어댑터 패턴을 이렇게 정의하고 있습니다.
“어댑터 패턴(Adapter Pattern) – 한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환합니다. 어탭터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있습니다.”
호스트코드에서 어떤 특정한 구상 클래스를 인터페이스를 통해 사용하고 있는 상황에서, 새로운 구상 클래스의 요건이 생겨서 제 3의 클래스가 생겼습니다. 이 때 호스트코드와 인터페이스의 코드는 변경하지 않고 (게다가 동일한 사용 방법으로) 제 3의 구상클래스의 메소드도 추가 사용할 수 있도록 해주는 패턴이라 할 수 있겠습니다.
Blog under the Creative Commons Attribution-NoDerivs 3.0 License