Skip to content

Latest commit

 

History

History

builder

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Builder pattern

  • 객체의 생성과 표현을 분리하여 객체를 생성

Structure

image

Example

  • @Builder로 자연스럽게 많이 사용해보셨을 듯 합니다.
    • 혹은 FCM 메시지 만들 때 간혹 사용했던 것으로 기억
    • aos, ios 플랫폼 별로 담아줘야 할 내용이 달라서 빌더 패턴 이용해서 message form을 만들었던 기억
  • 책에서는 계획표 생성인데 그냥 FCM 만드는 예제 (실제로는 아니고 간단히)
func main() {
    iosBuilder := fcm.NewIOSBuilder()
    iosBuilder.SetToken(token)
    // 하위 데이터도 빌더 패턴 적용 가능
    iosBuilder.SetIOS(fcm.IOSData{
        APN:      "APN",
        Content:  "hello",
        Redirect: "design/pattern/14",
    })
    iosMessage := iosBuilder.Build()
    
    builder := fcm.NewBuilder()
    // 체이닝 메서드도 적용 가능
    aosMessage := builder.
            SetPlatform(aos).
            SetToken(token).
            SetAOS(fcm.AOSData{
                Data: "hello",
                Path: "design/pattern/14",
            }).
            Build()
}

Reference