ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 빌더 패턴
    개발/디자인 패턴 2020. 1. 16. 10:08

    객체의 생성과 표현을 분리해, 동일한 생성 절차에서 다른 결과가 나올 수 있게 한다. 생성자만으로는 해결하기 어려운 문제를 위한 패턴.

     

    빌더 패턴의 다이어그램

    Product의 생성자는 비워 놓아 Builder를 사용하도록 강제한다. set 메서드들은 직접 사용하지 않고, Builder 클래스의 Build 메서드 내에서 사용한다. Director 클래스에서 Builder 객체를 생성한 뒤 Construct() 함수를 호출한다.

     

    Unity 예제 코드

    public class CharacterBuilder
        {
            private int hp;
            private int attack;
            private int attackSpeed;
    
            public CharacterBuilder SetHp(int hp)
            {
                this.hp = hp;
                return this;
            }
            public CharacterBuilder SetAttack(int attack)
            {
                this.attack = attack;
                return this;
            }
            public CharacterBuilder SetAttackSpeed(int attackSpeed)
            {
                this.attackSpeed = attackSpeed;
                return this;
            }
    
            public void Build(Character character)
            {
            // 여기서 객체를 생성한다.
            // 생성자를 사용하는 대신, 이미 생성된 객체의 값만 바꾼다.
                character.SetStatus(this.hp, this.attack, this.attackSpeed);
            }
        }
    public void StartBattle()
        {
            CharacterBuilder characterBuilder = new CharacterBuilder();
    
            characterBuilder.SetHp(int.Parse(this.playerHpInput.text))
                            .SetAttack(int.Parse(this.playerAtkInput.text))
                            .SetAttackSpeed(int.Parse(this.playerSpdInput.text))
                            .Build(this.player);
        }

     

    '개발 > 디자인 패턴' 카테고리의 다른 글

    추상 팩토리 패턴  (0) 2020.01.16
    팩토리메소드 패턴  (0) 2020.01.16
    싱글턴 패턴  (0) 2020.01.16
    디자인패턴이란  (0) 2020.01.16
Designed by Tistory.