전략 패턴

이수찬·2023년 6월 24일
0

전략 패턴 : 알고리즘군을 정의하고 캡슐화해 각각의 ㅇ라고리즘군을 수정해서 쓸 수 있게 해준다.
전략 패턴을 사용하면 클라이언트로 부터 알고리즘을 분리해서 독립적으로 변경할 수 있다.

상위형식에 맞춰서 프로그래밍하라는 원칙을 지킨다.
-> 이는 다형성의 핵심인데, 변수를 선언한 클래스에서 실제 객체의 형식을 몰라도 된다는 뜻이다.

이런 식으로 디자인하면 기존 클래스를 수정하지 않아도, 새로운 행동을 추가할 수 있다.

바뀌는 부분을 찾아내어 바뀌는 부분과 바뀌지 않는 부분을 분리해 캡슐화하는 식으로 작업한다.
(구성을 활용하여 알고리즘군을 별도의 클래스 집합으로 캡슐화할 수 있으며, 구성 요소로 사용하는 객체에 올바른 행동 인터페이스를 구현하기만 하면, 실행 시에 행동을 바꿀 수 있다.)

인터페이스를 통해 다형성을 활용하여 직접 행동을 처리하는것이 아닌 해당 인터페이스를 참조하는 객체에 해당 행동을 위임한다.
-> 동적으로 모듈을 끼울 수 있다.

상속보다는 구성을 활용한 디자인 패턴
상속의 문제점을 해결

상속의 단점 : 서브클래스의 코드가 중복된다.
상속받은 구체클래스들의 행동을 알기 어렵다.
실행시에 특정 행동을 바꾸기 어렵다.
추상클래스의 코드를 변경했을 때, 다른 자식클래스들에게 원치 않는 영향을 미칠 수 있다.

0개의 댓글