Strategy Pattern (전략 패턴)


- 여러 알고리즘을 하나의 추상적인 접근점을 만들어 접근점에서 서로 정보교환이 가능하도록 하는 패턴


- 흐름: Client가 전략을 고른다.(여러 선택지 중) -> 선택된 전략을 Dependency injection으로 Context에 넘겨준다.

Context는 전달받은 전략으로 초기화하여 필요한 자원(프로퍼티, 메서드 등)을 사용한다.


- 전략 패턴을 사용해면 콘텍스트 코드의 변경없이 새로운 전략을 추가, 수정에 용이하다.



(사용예) 캐릭터와 무기의 사용


무기 인터페이스

칼 (무기 인터페이스를 상속 받은 클래스)

창 (무기 인터페이스를 상속 받은 클래스)

도끼 (무기 인터페이스를 상속 받은 클래스)

캐릭터 클래스 (무기 인터페이스를 이용하여 공격 기능이 존재)

메인 클래스 (캐릭터를 생성하고 공격기능을 사용)







Posted by kunoo
,