헤드퍼스트 디자인패턴 - 전략 패턴
2024. 12. 7. 01:50ㆍBooks
1. 디자인 패턴 소개와 전략 패턴
전략패턴을 사용하기 전에는 ?
1. 상속을 이용해서 코드를 작성
상속을 이용했을 때의 단점
- 서브클래스에서 코드가 중복된다.
- 실행 시에 특징을 바꾸기 힘들다.
- 모든 서브클래스의 행동을 알기 힘들다.
- 코드를 변경했을 때 다른 클래스들에게 원치 않은 영향을 끼칠 수 있다.
2. 인터페이스를 이용해서 코드를 작성
인터페이스를 이용했을 때의 단점
- 코드를 재사용하지 않으므로 코드 관리에 문제가 생긴다.
- 행동을 변경할 때마다 행동을 구현한 서브클래스들을 전부 찾아서 일일이 고쳐야 한다.
3. 캡슐화를 이용해서 코드를 작성
2번에서는 행동을 인터페이스로 표현하고 직접 구현했었지만, 행동 인터페이스를 구현한 행동 클래스를 만들고 그것을 사용한다.
- 재사용과 쉬운 변경 가능
- 해당 기능을 직접 구현하지 않고 행동 클래스에 위임
전략 패턴
- 알고리즘을 정의하고 캡슐화해서 각각의 알고리즘을 수정해서 쓸 수 있게 해준다.
- 전략 패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있다.
전략 패턴의 디자인 원칙
- 애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부분과 분리한다.
- 구현보다는 인터페이스에 맞춰서 프로그래밍 한다.
- 상속보다는 구성을 활용한다.
= 바뀌는 부분은 따로 뽑아서 캡슐화한다. 그러면 나중에 바뀌지 않는 부분에는 영향을 미치지 않고 그 부분만 고치거나 확장할 수 있다.
'Books' 카테고리의 다른 글
Object - 객체, 설계 (0) | 2024.12.06 |
---|