2018.08.07
Chapter 05 스트래티지 패턴
로봇 | 공격 | 이동 |
---|---|---|
태권V | 주먹 | 날 수 있다 |
아톰 | 미사일 | 걷기 |
로봇 만들기
로봇 만들기
문제점1
문제점1
해당 클래스의 move 함수를 직접 수정해야 한다
문제점1
OCP 위반 - 새로운 기능으로 변경하기 위해 기존 코드의 내용을 수정
해당 클래스의 move 함수를 직접 수정해야 한다
문제점1
OCP 위반 - 새로운 기능으로 변경하기 위해 기존 코드의 내용을 수정
해당 클래스의 move 함수를 직접 수정해야 한다
아톰도 걷고, 태권V도 걷고 - move 함수 중복
문제점2
문제점2
로봇 자체가 캡슐화 단위이므로새로운 로봇 추가는 용이
문제점2
문제점2
attack 메서드 중복 - 수정이 있을 때 마다 전부 찾아가며 수정해야 함
해결책
변화되는 것을 찾고, 이를 클래스로 캡슐화
해결책
로봇의 공격, 이동 방식을 캡슐화
변화되는 것을 찾고, 이를 클래스로 캡슐화
해결책
로봇의 공격, 이동 방식을 캡슐화
변화되는 것을 찾고, 이를 클래스로 캡슐화
해결책
로봇의 공격, 이동 방식을 캡슐화
변화되는 것을 찾고, 이를 클래스로 캡슐화
구체적인 동작은 은닉
개선된 설계
스트래티지 패턴
같은 문제를 해결하는 여러 알고리즘(방식)이 클래스별로 캡슐화되어 있고, 필요할 때 교체함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 디자인 패턴
스트래티지 패턴 콜라보레이션
스트래티지 패턴 콜라보레이션
스트래티지 패턴 특징
스트래티지 패턴 특징
스트래티지 패턴 특징
스트래티지 패턴 특징
스트래티지 패턴 특징
스트래티지 패턴 특징
스트래티지 패턴 특징