인터페이스
- Interface를 이용하면 기능에 대한 선언과 구현이 분리 가능하다.
- Interface를 통해 기능의 사용 통로가 될 수 있다.
델리게이트
- 특정 객체에 기능을 사용하기 위해 다른 객체의 기능을 호출하는 것이다.
스트레티지 패턴(전략 패턴)
- 특정한 알고리즘을 정의하고 각 알고리즘을 캡슐화하여 실행중에 알고리즘을 선택할 수 있는 디자인 패턴이다.
- 이 패턴을 활용하면 클라이언트와는 독립적으로 다양한 알고리즘을 정의, 추가 할 수 있다.
- 위의 다이어그램에 맞게 구현을 해볼 것이다.
- Clinet는 GameCharacter 이 된다.
- Strategy Interface는 Weapon이 된다.
- Stratecy Clasee 들은 Knife, Sword, Ax들이 될 것이다.
- Weapon이라는 인터페이스를 구현하고 구체적인 행동을 구현하는 Sword, Ax, Knife 클래스를 만든다.
- 다형성을 통해 Weapon하나로 Sword, Ax, Knife모두를 가질수 있게 되었다.
- 즉 Weapon 하나로 모든 무기를 설정할 수 있게 된 것이다.
- GameCharacter는 멤버 변수로 Weapon을 가지고 있다.
- GameCharacter는 새로운 무기가 추가되어도 Weapon만 상속받는 다면 구현을 변경할 필요가 없다.
- 실행 중에 무기를 바꾸고 그냥 Weapon을 상속받은 인스턴스를 set해주면 된다.
'디자인 패턴' 카테고리의 다른 글
싱글톤 패턴(Singleton Pattern) (0) | 2019.12.12 |
---|---|
추상 팩토리 패턴(Abstract Factory Pattern) (0) | 2019.12.12 |
팩토리 메서드 패턴(Factory Method Pattern) (0) | 2019.12.11 |
데코레이터 패턴(Decorator Pattern) (0) | 2019.12.11 |
옵저버 패턴(Observer Pattern) (0) | 2019.12.10 |