-
스트래티지 패턴 ( Strategy pattern )JAVA/Java Design Patterns 2020. 4. 20. 22:01
선행학습 2가지 1. 인터페이스 2. 위임
1. 인터페이스
우선 인터페이스는 기능에 대한 선언과 구현을 분리하며 기능을 사용하는 통로를 분리하는 것.
2. 위임
다음과 같이 객체의 기능을 빌려서 사용하는 것을 위임한다 라고 표현한다.
스트레티지 패턴이란?
-여러 알고리즘을 하나의 추상적인 접근점(인터페이스)을 만들어 접근 점에서 서로 교환 가능하도록 하는 패턴.
클라이언트는 전략을 하나 가지고 있고 A, B, C 중 하나를 세팅할 수 있다.
하나의 Weapon을 통해서 Knife와 Sword를 바꿔 끼는 상황을 구현해보자.
Person 클래스는 Weapon이라는 추상적인 접근점(인터페이스) 을 만들어 접근 점에서
서로 교환 가능(Knife or Sword) 하도록 하는 패턴이 됐다.
Ax라는 무기가 추가되어도 간단히 구현이 가능하다.
정리 : 어떤 동작을 하는 로직을 정의하고 이것들을 하나로 묶어서 관리하도록 하는 패턴이다. 로직을 사용하는 객체들은 자기의 입맛에 맞게 로직을 효율적으로 수정할 수 있다. 새로운 로직을 추가하거나 변경할 때 객체의 종류 수 만큼 반복하지 않고, 단 한번으로 반영할 수 있다.
'JAVA > Java Design Patterns' 카테고리의 다른 글
싱글턴 패턴( Singleton Pattern ) 과 static - Java 디자인 패턴 (0) 2020.04.28 템플릿 메소드 패턴 (0) 2020.02.22