[TIL] 2020.06.01 TIL-200601
디자인패턴 학습
1. 인터페이스란?
- 기능에 대한 선언과 구현 분리
- 기능을 사용하는 통로
2. 전략 패턴
- 여러 알고리즘을 하나의 추상적인 접근점을 만들어 접근점에서 서로 교환이 가능하도록 하는 패턴
- 어떤 행위(메소드)에 따른 방법(전략)을 선택하여 행위를 유연하게 확장하는 것
기본패턴
3. 델리게이트
- 개발시, 논리적인 설계 후 코드 구현 단계에서 효율적으로 일을 분배하기 위해 인터페이스를 통해 가능
- 실행시, 인터페이스를 실행하면 인터페이스가 직접 처리하는 것이 아닌, 그 인터페이스가 가리키는 인스턴스가 처리하는 방식
4. 코드실습
Weapon interface
public interface Weapon {
public void attack();
}
Sword Class
public class Sword implements Weapon{
@Override
public void attack() {
System.out.println("검 공격");
}
}
Knife Class
public class Knife implements Weapon{
@Override
public void attack() {
System.out.println("칼 공격");
}
}
GameCharactor Class
public class GameCharactor {
// 접근점
private Weapon weapon;
// 교환 가능
public void setWeapon(Weapon weapon) {
this.weapon = weapon;
}
public void attack() {
if (weapon == null) {
System.out.println("맨손 공격");
} else {
// 델리게이트
weapon.attack();
}
}
}
GameMain
public class GameMain {
public static void main(String[] args) {
GameCharactor charactor = new GameCharactor();
//맨손공격
charactor.attack();
//검공격
charactor.setWeapon(new Sword());
charactor.attack();
//칼공격
charactor.setWeapon(new Knife());
charactor.attack();
}
}
실행결과
맨손 공격
검 공격
칼 공격
댓글남기기