//
Search
👣

0629

전략 패턴

전략 패턴은 컨텍스트(context)에서 사용할 변경 가능한 전략(알고리즘)인터페이스
를 이용하여 캡슐화하고, 필요에 따라 동적으로 변경하여 사용할 수 있도록 하는 디자인 패턴이다.
여기서 전략(알고리즘)이란 독립적인 책임으로 분리가 가능한 기능을 의미한다.
Weapon.java
public interface Weapon { public void attack(); }
Java
복사
Knife.java
public class Knife implements Weapon{ @Override public void attack() { System.out.println("칼 공격"); } }
Java
복사
//교환 가능 public void setWeapon(Weapon weapon) { this.weapon = weapon; } public void attack(){ if (weapon == null) { System.out.println("맨손 공격"); } else { //위임(Delegate) weapon.attack(); } } }
Java
복사
무기(Weapon)는 공격(attack)이라는 기능을 가지는 하나의 접근점(strategy)이 됩니다. setWeapon 메서드를 통해 접근점을 변경할 수 있습니다. weapon.attack() 으로 weapon에게 공격기능을 위임합니다.
main.java
public class main { public static void main(String[] args) { GameCharacter character = new GameCharacter(); character.attack(); character.setWeapon(new Knife()); character.attack(); character.setWeapon(new Sword()); character.attack(); } }
Java
복사
전략 패턴은 컨텍스트(context)에서 사용할 변경 가능한
전략(알고리즘)
인터페이스
를 이용하여 캡슐화하고, 필요에 따라 동적으로 변경하여 사용할 수 있도록 하는 디자인 패턴이다.
여기서 전략(알고리즘)이란 독립적인 책임으로 분리가 가능한 기능을 의미한다.