부트캠프/Unity [ 스파르타 ]

[ 스파르타 ][TIL] 유니티 스파르타 7기 20일차 - Factory 패턴

맏난거 2025. 2. 18. 21:00

🎯 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 키워드 남발 방지, 코드 수정 최소화

이 패턴을 유니티에서 오브젝트 풀링과 함께 사용하면 메모리 관리에도 효과적입니다