📌 Strategy pattern
전략 패턴으로 불리며, 객체 지향의 꽃이다.
유사한 행위들을 캡슐화하여,
객체의 행위를 바꾸고 싶은 경우 직접 변경하는 것이 아닌
전략만 변경하여 유연하게 확장하는 패턴
SOILD 중에서 개방 폐쇄 원칙과 의존 역전 원칙을 따른다.
Strategy Pattern 에서는 이것들이 필요하다.
전략 메서드를 가진 전략 객체
전략 객체를 사용하는 컨텍스트
전략 객체를 생성해 컨텍스트에 주입하는 클라이언트
인코딩을 전략패턴을 이용해보자.
라인 리딩
13 전략객체를 사용하는 컨텍스트 생성
16,18,31 전략 메서드를 가진 전략 객체 생성
23,27,31 컨텍스트에 전략 객체 세팅
(31 은 전략객체 생성과 컨텍스트에 세팅을 한꺼번에 진행)
24,28,32 메세지를 세팅해놓은 컨텍스트에 가져와 String 변수에 담기
25,29,32 출력
각기 다른 전략으로 출력된 메세지들
정리하자면,
전략 메서드를 가진 전략 객체
Normal Strategy, Base64 Strategy, Append Strategy
전략 객체를 사용하는 컨텍스트
Encoder
전략 객체를 생성해 컨텍스트에 주입하는 클라이언트
Main
'이론 > 디자인패턴' 카테고리의 다른 글
[디자인패턴] 파사드 패턴 Pasade Pattern (0) | 2021.06.06 |
---|---|
[디자인 패턴] 옵저버 패턴 Observer Pattern (0) | 2021.06.06 |
[디자인패턴] 데코레이터 패턴 Decorator Pattern (0) | 2021.06.06 |
[디자인 패턴] 프록시 패턴 Proxy Pattern (0) | 2021.06.04 |
[디자인패턴] 어뎁터 패턴 Adapter Pattern (0) | 2021.06.04 |