이 패턴은 생성(Creational), 구조(Structural), 행위(Behavioral) 패턴으로 나눌 수 있는 디자인 패턴 중 행위 패턴에 속합니다.
포스팅 이유
무엇인가 이해하려 할 때, 다른 관점에서 이해 한것이 도움이 될 수 있습니다. 이해를 기록해 두기 위해 남깁니다.
관련 링크
- http://hyeonstorage.tistory.com/146
- http://arabiannight.tistory.com/entry/%EC%9E%90%EB%B0%94Java-%ED%8C%A8%ED%84%B4-1%EC%8A%A4%ED%8A%B8%EB%9E%98%ED%8B%B0%EC%A7%80-%ED%8C%A8%ED%84%B4Strategy-Pattern
- http://blog.naver.com/yeji_rang?Redirect=Log&logNo=220175424891
- http://blog.naver.com/jidon333/220108740978
사례
이 패턴을 처음 알게 된건, 대전 액션 게임 서버 개발 중 여러 종류의 경기 종료 규칙을 적용하기 위해 선임 개발자가 사용 한 것을 보고 알게 되었습니다. 그리고 캐릭터가 사용하는 총의 발사 규칙(연사, 점사, 일점사)을 적용할 때도 썼었네요. 그 밖에도 에디터에서 라인 구분 방법 분기, 컴파일에서 기계별 레지스터 할당 방법 분기, 수학에서는 계산 방법 분기, 웹싸이트에서는 가입 절차에 따른 회원 검증 방법 분기 등이 있다고 하네요.
사용 이유
객체가 하는 일은 변하지 않는데, 일을 처리 방법이 달라질 때, 상속이나 조건문으로 구현하기에 일 처리 방법 및 분기의 코드(변수, 로직 등) 관리 자리가 부담스러워 독립된 자리에서 일을 처리하고 싶을 때 사용 합니다.
스트래티지 패턴(Strategy Pattern) 구현 알고리즘
- 구현(알고리즘)을 클래스(또는 클로저, 함수자 등)로 독립 시킨다.
- 독립된 구현에 공통 인터페이스(함수로 호출 부분)를 붙인다.
- 구현 사용 객체는 독립시킨 구현과 has-a 관계로 묶는다.
구현 방법
링크를 참조 하세요. 워낙 많아 따로 정리할 필요가 없겠네요.
:wq!
'연구실 > 파편화된 기록들' 카테고리의 다른 글
넥서스7 1세대, 롤리팝 업데이트 후 느려짐 현상 수정(버벅임) (0) | 2015.09.16 |
---|---|
유니티3D에 자바 라이브러리 Jar 연동하기 (How to link Jar in Unity3D) (0) | 2015.04.08 |
유니티3D를 위한 인 게임 디버그 콘솔 넣기 (In-game debug console for Unity3D) (0) | 2015.04.03 |
유니티 암호화 2편, 외부 DLL 암호화 (4) | 2015.03.17 |
유니티 암호화 1편, PlayerPrefs 암호화 (7) | 2015.03.01 |
바나나리퍼블릭 Sale 페이지 할인율 올림차순이 북마클릿 (0) | 2015.02.06 |
네티 유저 가이드 4.x (Netty User guide for 4.x) 한글 번역 (1) | 2015.02.03 |
중복 코드 제거 기법 - swith+for 코드 점프 기법 (0) | 2011.03.18 |
lunit - Unit Testing Framework for Lua (1) | 2011.02.27 |
ORA-12520 (2) | 2011.02.05 |
최근댓글