728x90
strategy pattern (전략 패턴)
(= policy pattern, 정책 패턴)
객체의 행위를 바꾸고 싶은 경우 '직접' 수정하지 않고,
전략이라고 부르는 '캡슐화한 알고리즘'을
컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴
객체들이 할 수 있는 행위에 대해 전략 클래스를 생성하는 패턴
인터페이스를 사용해 기본 행위를 정의한 후 객체의 행위를 변경하고싶을 때
직접적으로 행위를 수정하는 것이 아닌, 객체에서만 행위를 변경해 유연하게 확장하는 패턴
결론: 변경시 대응에 용이하도록 변경이 잦은 행위를 추상화하는 것
* 컨텍스트 : 상황, 맥락, 문맥. 어떠한 작업을 완료하는데 필요한 모든 관련 정보.
예제 코드 1 (Kotlin)
장바구니에 물건을 담은 후 각 카드(전략)로 결제했을 때의 금액을 나타내는 상황을 구현한 예제
* interface : 구현부분이 없게 만들 수 있는 클래스, 상속을 받는 부분에서 인터페이스의 메서드 부분을 채워 구현하도록 함.
abstract와의 차이점1 : 하위 클래스에서 사용시 콜론(':') 뒤에 인터페이스 명을 괄호를 붙이지 않고 적는다.
abstract와의 차이점2 : 하위 클래스에서 사용시 인터페이스 내의 디폴트가 없는 메서드를 모두 구현해야 한다. ...
예제 2 (설계)
참고
필자의 보완점
- JS의 Passport 라이브러리는 무엇인가...
passport js 라이브러리
728x90
'CS note > 디자인 패턴, 프로그래밍 패러다임' 카테고리의 다른 글
MVC pattern (Model View Controller) (0) | 2023.04.30 |
---|---|
factory pattern (팩토리 패턴) (0) | 2023.01.25 |
singleton pattern (싱글톤 패턴) (0) | 2023.01.20 |
디자인 패턴 및 프로그래밍 패러다임 (0) | 2023.01.20 |
댓글