전략 패턴
소프트웨어 디자인 패턴 중 하나로, 객체 지향 프로그래밍에서 사용되는 패턴 중 하나.
알고리즘(동작)을 정의하고, 이러한 알고리즘들을 각각의 독립된 클래스로 캡슐화하여 상호 교환 가능하게 만드는 디자인 패턴.
public interface IMovementStrategy { void Move(); }
public class WalkStrategy : IMovementStrategy { public void Move() { // 걷기 로직 구현 Debug.Log("걷기"); } } public class RunStrategy : IMovementStrategy { public void Move() { // 뛰기 로직 구현 Debug.Log("뛰기"); } }
public class PlayerCharacter : MonoBehaviour { private IMovementStrategy movementStrategy; public void SetMovementStrategy(IMovementStrategy strategy) { this.movementStrategy = strategy; } public void Move() { if (movementStrategy != null) { movementStrategy.Move(); } else { Debug.LogError("이동 전략이 설정되지 않았습니다."); } } }
public class GameManager : MonoBehaviour { private PlayerCharacter player; private void Start() { player = new PlayerCharacter(); // 걷기 전략 설정 player.SetMovementStrategy(new WalkStrategy()); // 플레이어 이동 player.Move(); // 뛰기 전략 설정 player.SetMovementStrategy(new RunStrategy()); // 플레이어 뛰기 player.Move(); } }