본문 바로가기
Programming/Design Pattern

[Design Patterns] 스트래티지 패턴 (strategy pattern)

by devfactory 2024. 9. 28.
스트래티지 패턴에서는
● 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다.
● 스트래티지를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다.

strategy pattern

디자인 원칙 1
애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부분으로부터 분리시킨다.

바뀌는 부분을 캡슐화하면 바뀌지 않는 부분에 영향을 미치지 않고 그 부분만 고치거나 확장할 수 있다.

 

디자인 원칙 2
구현이 아닌 인터페이스에 맞춰서 프로그래밍한다.

Duck의 행동을 DuckClass에서 구현하거나 서브클래스에서 구현하는 것이 아닌 인터페이스로 표현된 행동을 사용하게 된다. 따라서 Duck의 행동을 구현한 것은 Duck서브클래스에 국한되지 않는다.

 

디자인 원칙 3
상속보다는 구성을 활용한다.

행동을 상속받는 대신 행동 객체로 구성됨으로써 행동을 부여하면 행동을 별도의 클래스로 캡슐화할 수 있도록 만들어주는 것 뿐아니라 실행시에 행동을 바꿀 수도 있게 해준다.

반응형