본문 바로가기
개발/기본) 디자인패턴

디자인패턴) 팩토리 패턴(Factory Pattern)

by 테샤르 2020. 3. 18.

팩토리 패턴(Factory Pattern)

 

팩토리 패턴의 핵심은 '클래스의 인스턴스를 만드는 것을 서브클래스에서 결정하게 만드는 것'이다.

공장에서 어떤 재표를 넣으면 각 공정에서 다른 모양으로 변환해서 나오는 것으로 생각하면 된다.

new 키워드를 사용하는 부분을 서브클래스에서 위임해서 객체 생성을 캡슐화하고 구상 클래스에 대한 의존성이 줄어든다. 

 

 

 

 

public class UnitFactory : TypeUnitFactory
{

    public override Unit MakeUnit(eUNIT_TYPE _type)
    {
        Unit returnValue = null;
        switch (_type)
        {
            case eUNIT_TYPE.ATTACK:{
                returnValue = new AttackUnit();
            }
            break;
            case eUNIT_TYPE.PRODUCT:{
                returnValue = new ProductUnit();
            }
            break;
            case eUNIT_TYPE.DEFENCE:{
                returnValue = new DefenceUnit();
            }
            break;
        }

        return returnValue;
    }

    #region Private Method

    #endregion
    #region Public Method

    #endregion

}

팩토리 패턴의 가장 주요한 특징은 new 키워드를 사용해서 Factory Class에서 생성을 해서 돌려준다는 것이다.

이렇게 구현이되면 새로운 Unit을 추가하는 과정에서도 독립과 의존성을 유지할 수 있다.

굉장히 많이 사용하는 디자인 패턴이다.

 

 

 

반응형

댓글