하리Hari

5. 빌더 패턴 (Builder)

메서드 체이닝을 활용해 복잡한 객체를 단계적으로 조립하는 빌더 패턴을 알아봅니다.

햄버거를 주문할 때 빵 종류, 패티 개수, 양상추 추가 여부 등 선택할 게 참 많죠? 옵션이 많은 객체를 생성할 때, 생성자(처음 만들어질 때) 매개변수를 수십 개씩 넘기는 대신 메서드를 체인처럼 연결해서 단계적으로 조립하게 해주는 패턴이 바로 빌더 패턴이에요.

하리(Hari)에서는 '나'를 돌려주자를 활용해 **메서드 체이닝(Method Chaining)**을 완벽하게 구현할 수 있어요!

[햄버거]를 설계하자:
    '빵'을 [문자열]인 "참깨빵"으로 정하자
    '패티'를 [숫자]인 1로 정하자
    '야채'를 [논리]인 참으로 정하자
    
    <정보보기>를 만들자 ():
        틀"주문하신 햄버거: 빵={'나'의 '빵'}, 패티={'나'의 '패티'}장, 야채={'나'의 '야채'}"를 출력하자

(참고) 햄버거를 단계적으로 조립할 빌더 클래스예요
[햄버거빌더]를 설계하자:
    '_버거'를 [햄버거]인 새로운 [햄버거]()로 정하여 숨기자
    
    [햄버거빌더]를 돌려주는 <빵바꾸기>를 만들자 ([문자열]인 '새로운빵'):
        '나'의 '_버거'의 '빵'을 '새로운빵'으로 정하자
        '나'를 돌려주자
        
    [햄버거빌더]를 돌려주는 <패티추가>를 만들자 ([숫자]인 '개수'):
        '나'의 '_버거'의 '패티'를 '개수'로 정하자
        '나'를 돌려주자
        
    [햄버거빌더]를 돌려주는 <야채빼기>를 만들자 ():
        '나'의 '_버거'의 '야채'를 거짓으로 정하자
        '나'를 돌려주자
        
    [햄버거]를 돌려주는 <만들기>를 만들자 ():
        '나'의 '_버거'를 돌려주자

(참고) 메서드를 줄줄이 소시지처럼 연결해 볼까요?
'내주문'을 [햄버거]인 새로운 [햄버거빌더]()의 <빵바꾸기>("호밀빵")의 <패티추가>(3)의 <야채빼기>()의 <만들기>()로 정하자

'내주문'의 <정보보기>()를 실행하자
놀이터
결과
코드를 작성하고 '실행' 버튼을 눌러보세요.