보물창고 블로그

전략 패턴 (Strategy Pattern) 이란? 본문

프로그래밍 언어/디자인 패턴

전략 패턴 (Strategy Pattern) 이란?

홋 메 2020. 12. 9. 15:09
728x90

전략 패턴이란

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

 

추상적인 접근점이란 자바(Java)에서 인터페이스(Interface)를 지칭하는 것이고, 인터페이스를 통해 인터페이스를 상속하는 하위 클래스를 변경 가능하게 하는 것입니다. 코드로 살펴보겠습니다.

인터페이스 생성

위 사진과 같이 party라는 인터페이스를 만들었습니다. 그리고 상속받는 클래스들에게 propagandize라는 함수를 만들게 하였습니다.

이후 party를 상속받는 클래스들을 만들었습니다.

party를 상속받은 더불어 민주당 생성
party를 상속받은 국민의 힘 생성

party를 상속받은 클래스 내부에서 propagandize함수를 재정의하였습니다.

파티를 멤버 변수로 가질 person 클래스를 선언하였습니다.

person 클레스 생성

 이후 메인에서 다음과 같이 실행하였습니다.

먼저 person 객체의 party 값이 null 값이기 때문에 "나는 중립이오"가 출력되었고, 

다음 줄부터는 person의 propaganda함수에 의해 person이 가지고 있는 party의 propagadize 함수가 호출되었습니다.

이로써 추상적인 접근점을 만들어 접근 점에서 서로 교환 가능하도록 하는 패턴을 확인하였습니다.

 

Comments