🎯 Factory 패턴이란?
Factory 패턴은 객체 생성을 캡슐화하여, 클라이언트 코드에서 new 키워드를 직접 사용하는 대신 팩토리 메서드를 통해 객체를 생성하는 방식을 의미합니다.
유니티에서는 총기, 적, 아이템 등의 인스턴스를 동적으로 생성할 때 유용하게 사용할 수 있습니다.
🛠️ Factory 패턴의 구조
1. 추상 클래스 또는 인터페이스 정의
객체 생성을 위한 공통 인터페이스를 정의합니다.
public interface IWeapon
{
void Attack();
}
2. 구현 클래스 작성
인터페이스를 구현하는 여러 클래스를 생성합니다.
public class Pistol : IWeapon
{
public void Attack()
{
Debug.Log("Pistol: Bang Bang!");
}
}
public class Rifle : IWeapon
{
public void Attack()
{
Debug.Log("Rifle: Ratatat!");
}
}
3. Factory 클래스 생성
객체 생성을 담당하는 팩토리 클래스를 만듭니다.
public class WeaponFactory
{
public static IWeapon CreateWeapon(string type)
{
switch (type)
{
case "Pistol":
return new Pistol();
case "Rifle":
return new Rifle();
default:
throw new System.Exception("Unknown weapon type");
}
}
}
4. 사용 예시
void Start()
{
IWeapon weapon = WeaponFactory.CreateWeapon("Pistol");
weapon.Attack(); // 출력: "Pistol: Bang Bang!"
}
🚀 Factory 패턴의 장점
✔ 객체 생성 로직을 한 곳에서 관리 → 코드 중복 감소
✔ 유연한 확장 가능 → 새로운 무기 추가 시 기존 코드를 수정할 필요 없음
✔ 유지보수 용이 → new 키워드 남발 방지, 코드 수정 최소화
이 패턴을 유니티에서 오브젝트 풀링과 함께 사용하면 메모리 관리에도 효과적입니다
'부트캠프 > Unity [ 스파르타 ]' 카테고리의 다른 글
[ 스파르타 ][TIL] 유니티 스파르타 7기 22일차 - ScriptObjectable (0) | 2025.02.20 |
---|---|
[ 스파르타 ][TIL] 유니티 스파르타 7기 21일차 - 탑다운 뷰 트러블 슈팅 (0) | 2025.02.19 |
[ 스파르타 ][TIL] 유니티 스파르타 7기 19일차 - 선형 보간 Lerp (0) | 2025.02.17 |
[ 스파르타 ][TIL] 유니티 스파르타 7기 18일차 - Command 패턴 (0) | 2025.02.14 |
[TIL] 유니티 스파르타 7기 17일차 - Thread와 lock 기능 (1) | 2025.02.13 |