-
강의 - 디자인 패턴 - 빌더(빌드) 패턴TIL 2023. 10. 27. 17:44반응형
빌더 패턴
객체 생성 시 복잡한 과정이 있을 수 있다.
그러한 복잡한 생성 과정을 분리해서
다양한 구성의 인스턴스를 만드는 생성 패턴이다.
생성 패턴이란?
인스턴스를 만드는 절차를 추상화하는 패턴이다.
예를들어 싱글톤 패턴, 팩토리 패턴, 추상 팩토리 패턴 등이 있다.
이러한 생성 패턴은 시스템이 상속보다 복합 방법을 사용하는 방향으로 가며
중요성이 높아졌다.
ㅡ
우리가 어떤 클래스를 생성할 때,
다양한 파라미터를 사용하는 경우
오류가 발생할 확률이 높아진다.
빌더 패턴은 이러한 문제를 명시적이고 단계적으로 만들어
위와 같은 경우의 문제를 해결한다.
필수적인 값은 생성자를 통해, 선택적인 값(파라미터 값)들에 대해서는
메서드를 통해 값을 입력 받은 후, 최종적으로 빌드 메서드를 호출하여
하나의 인스턴스를 반환하는 방식이다.
파라미터값은 반드시 순서대로 입력해야 하므로,
직관성이 매우 떨어지고, 혼란을 준다.
ㅡ
오버로딩
생성자 메서드의 파라미터의 개수가 다를 때
오버로딩이라 한다.
이는 과적한다는 뜻인데, 이미 정의된걸 덮어쓴다는 뜻이다.
함수 중복 정의 : 덮어쓰기 (변화하지 않는 기존 정보는 유지)
오버라이딩
덮어쓰기가 아닌 완전 새로 교체
ㅡㅡ
만약 빌드 패턴을 단순하게 쓰는 경우에 잘못된 경우
Car car1 = new Car("ZZZ", 4, "V6");
car1.SetSunroof(true);
..
이런식으로 진행될 수 있는데
생성자에서 일부 초기화 후, 메서드에서 나머지 파라미터를 set하고,
사실상 외부에서 파라미터 값을 변경할 수 있게 된다.
이건 틀린 방법이다.
객체 생성은 생성과 호출과 함께 여러 메서드를 체이닝하여 이루어져야 한다.
필요값 변수선언
Class Temp()를 작성하고
해당 클래스의 메서드를 통해 선택값을 받아준다.
여기서 중요한 내용은
초기화가 필수인 멤버는 빌더의 생성자로,
선택적인 멤버는 빌더의 메서드로 받도록 한다.
또한 예외 발생 시 작업 도중 예외 발생 시, 객체의 생성이 애초에 되질 않아
해결이 어려운 상황을 방지할 수 있다.반응형'TIL' 카테고리의 다른 글
최종 프로젝트 - BT에 들어갈 노드들 정리(+개념) (1) 2023.10.31 params(가변 인자 매개변수) (0) 2023.10.27 유니티 - 비헤이비어 트리 : BT(Behavior Tree) 개념잡기 와 예시 (0) 2023.10.27 RPC(원격 프로시저 호출 / Remote Procedure Calls) 란 무엇인가? (1) 2023.10.25 네트워크 게임을 개발하는데 필요한 이론적 배경-2 (0) 2023.10.24