디자인패턴
- 4. 디자인 패턴이란?
- 과거의 소프트웨어 개발 과정에서 발견된
설계의 노하우를 정리하여 이름을 붙인 것
- 자주 발생하는 문제에 대한 검증된 해결책을
의미한다
- 6. 디자인 패턴을 사용하는 이유
복잡한 구조를 한 단어로 정의함으로써
의사소통을 효율적으로 할 수 있다
A : 노랗고 동그랗고
안경을 낀데다가 바나나를
좋아하는 캐릭터가
말이죠…
B : 미니언이요?
- 10. Strategy 패턴
- 알고리즘을 캡슐화하여 교체하여 사용 할 수
있도록 한 구조
- 알고리즘 인터페이스를 정의하고
인터페이스를 상속받은 클래스에 알고리즘을
구현하여 캡슐화
- 알고리즘을 사용할 클래스에 인터페이스를
포함시킨다
- 17. Strategy 패턴의 장단점
- 상속으로 해결 할 수 없는 코드 중복이나
객체의 실시간 알고리즘의 변경 시에
유용하다
- 신규 알고리즘 추가, 수정이 용이하다
- OPP 디자인적인 관점에 맞지 않다
- 18. Strategy 패턴, 언제 사용할까?
- 게임 룰을 모드 별로 다르게 적용하고 싶을
때
- 상황에 따라 길찾기 알고리즘을 바꾸고 싶을
때
- 20. Observer 패턴
- 객체의 상태변화를 관찰하는 관찰자들을
객체가 가지고 있다가 상태변화가 있을 시
통지하는 패턴
- 일대다(one-to-many) 의존성을 정의한다
- 26. Observer 패턴 장단점
- 느슨한 결합으로 옵저버가 추가되어도 주제
객체는 수정을 하지 않아도 된다
- 구독을 취소하는 동안에는 통지를 받을 수
없다
- 29. Decorator 패턴
- 객체에 추가적인 요건을 동적으로 첨가하는
패턴
- 기본 클래스의 서브 클래스를 구성하여
생성시 상속받은 클래스를 넘겨서 확장할 수
있도록 함
- 45. Factory 패턴 장단점
- 새로운 객체가 추가되더라도 소스의 수정이
없다
- 객체 생성을 한 군데서 하는 이상 동일한
생성을 보장한다
- 생성하는 객체의 양이 적다면 코드를
복잡하게 만들 수 있다
- 51. Singleton 패턴 장단점
- 객체 생성 횟수를 줄일 수 있다
- 전역변수와 달리 사용하기 전까지 객체가
생성되지 않는다
- 멀티 스레드 환경에서 사용시 동기화를
보장해주지 않는다
- 54. Command 패턴
- 요청을 객체의 형태로 캡슐화한 패턴
- 서로 요청이 다른 사용자의 매개변수, 요청
저장, 로깅, 연산 취소를 지원한다
- 61. Command 패턴 장단점
- 작업을 요청하는 객체와 실제 작업을 하는
객체를 분리 시킨다
- 다양한 요구를 쉽게 추가할 수 있다
- 자잘한 클래스가 많이 생성된다
- 65. 출처
- 헤드 퍼스트 디자인 패턴 (한빛미디어)
- http://hongjinhyeon.tistory.com/
- http://tiboy.tistory.com/
- http://zetawiki.com/wiki/
- https://en.wikipedia.org
- http://gameprogrammingpatterns.com/
- 기타 등등..