3장. 전략 패턴
전략 패턴 : 알고리즘의 군을 정의하고 캡슐화해주며, 서로 언제든지 바꿀 수 있도록 해줌.
) -->
디자인패턴 : 코드 설계는 예술적 요소가 있으며, 충분한 경험 없이는 효과적인 코드를 만들기 쉽지 않음. 하지만 경험많은 개발자가 유사한 문제에 대해 이미 만든 해결책이 있으며, 설계 패턴은 이와 같은 해결책을 말함
) -->
패턴의 종류
생성: 객체의 생성과 관련(생성하는 객체의 구체적인 클래스와 이들의 생성방법을 숨김)
행위 : 객체와 객체의 상호작용 관련 (보통 상속보다는 포함관계 사용)
구조 : 객체간의 정적인 구조적 관계와 관련됨
) -->
패턴을 사용하는 이유
유연성 : 코드의 유연성 확보(객체간의 올바른 추상화 제공, 객체간의 낮은 결합성 제공)
재사용성 : 코드의 재사용 가능성을 높여줌
개발자간 의사소통 강화
) -->
is-a보다 has-a가 더 좋음
) -->
전략패턴 : 알고리즘의 군을 정의하고 캡슐화해주며, 서로 언제든지 바꿀 수 있도록 해줌. 객체의 상태에 따라 행위를 동적으로 바꿀 수 있도록 해줌.(당연한 것이지만 조건문을 사용하지 않음)
) -->
등장 클래스
strategy 인터페이스 : 전략을 이용하기 위한 인터페이스 제공
concrete strategy 클래스 : 다수가 제공되며, 구체적인 전략이 구현되어 있는 클래스
Client 클래스 : Context 클래스라고도 하며, 전략을 실제사용하는 클래스
) -->
전략 패턴 사용 시기
관련 있는 클래스들의 행위만 다를 경우
한 알고리즘의 다양한 변형이 필요한 경우
알고리즘 클라이언트는 몰라야 하는데 데이터를 사용할 경우
한 클래스가 여러 행위 조건문을 통해 정의할 경우
전략 패턴 관계도
장점 : 위임이라는 느슨한 연결을 통해 전략을 쉽게 바꿀 수 있으며, 실행중에도 변경 가능함.
단점 : 행위의 모델링이 쉽지 않을 수 있음
) -->
'컴퓨터 공학' 카테고리의 다른 글
객체지향개발론 4장 데코레이터 패턴 (0) | 2015.11.27 |
---|---|
객체지향개발론 4장 옵저버패턴 (0) | 2015.11.27 |
2장. 객체지향 개발 절차와 UML (0) | 2015.11.27 |
객체지향개발론 1장 객체지향 프로그래밍 개념 재검토 (0) | 2015.11.27 |
정보보호개론 2장. 암호프로토콜의 개요 (0) | 2015.11.27 |