빌더 패턴이란?
빌더 패턴은 복잡한 객체를 생성과정을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만드는 패턴입니다.
빌더 패턴 쉽게 이해하기
빌더 패턴은 간단하게 생각하면 공장이라고 생각합니다.
만약 아이폰을 만드는 공장이 돌아간다고 하면 아이폰의 경우 안에 내부가 256인지? 128인지? 컬러는 red인지 blue인지
이런 경우 class를 만들게 되면 red일 경우 클래스가 만들어지고 blue인 경우도 클래스가 만들어지기 때문에 이러한 방법은 계층구도가 효율적이지 못하다고 생각합니다. 또는 자식클래스를 늘려서 재사용성을 높이자고 하는 경우도 있습니다. 하지만 만약 red 컬러가 인기가 없어지면 red의 자식 클래스는 아무도 쓰지 않기 때문에 이러한 경우 매개변수가 사용되지 않아서 생성자 호출코드가 더러워질 것입니다.
그럼 빌더 패턴은 이것을 어떻게 해결했나요? 라고 물으면 빌더 패턴은 빌더라는 객체를 만드는 방법을 제안합니다. 이 방법은 쉽게 생각해서 공장에서 처음부터 하나의 값만 받고 만들어내는 것이 아닌 빌더를 만들어서 원하는 값을 넣으면 빌더가 모든 재료와 특징에 맞게 합치는 방법이라고 생각하시면 이해하시기 편합니다 ^^
빌더 패턴는 주로 어떤 경우에 사용할까?
주로 복잡한 객체를 사용할 때 유용합니다. 예를 들어서 객체를 선언하고 값이 많이 변동되거나 선언부가 많은 경우
재선언에 어려움을 격을 경우 빌더 패턴을 사용합니다.
빌더 패턴은 언제 사용해야지 효율적일까?
사실 swift 조금 하신 분들을 조금 당황했을 수 있습니다. swift에는 기본적으로 init이 있기 때문에 이렇게 타입을 만들기 않아도 초기화 메서드를 사용하거나 프로퍼티를 사용하면 간단했을 테니까요. 빌더 패턴은 사실 swift에서는 자주 사용하는 패턴은 아닙니다. 하지만 위에서 말했듯이 프로퍼티 계수가 엄청 많고 복잡한 경우 한 번쯤 사용해 볼 만할 것 같습니다
빌더 패턴의 구조 이해해보기!
Builder -> Product
빌더 패턴의 구조는 Product와 이를 만드는 Builder로 구성되어 있습니다.
Buider는 어떤 값들을 세팅하는 메서드와 최종적으로 Product를 만드는 build() 메서드를 가지게 됩니다.
때문에 Product가 만들어지는 모든 과정에는 Builder의 책임이 따릅니다.
빌더 패턴 예제 코드
https://github.com/jjunhaa0211/ADPattern-Swift/tree/main/GoF-BuilderPattern
GitHub - jjunhaa0211/ADPattern-Swift: 🧪 Swift를 사용하여 아키텍쳐 패턴과 디자인 패턴의 예제를 설명합
🧪 Swift를 사용하여 아키텍쳐 패턴과 디자인 패턴의 예제를 설명합니다. 🧪. Contribute to jjunhaa0211/ADPattern-Swift development by creating an account on GitHub.
github.com
오늘도 긴글 읽어주셔서 감사합니다!!!!
'Swift > 패턴' 카테고리의 다른 글
[생성 패턴]Factory Method Pattern (0) | 2023.02.28 |
---|---|
[생성 패턴] Prototype Pattern (0) | 2023.02.28 |
[디자인 패턴] Gof 디자인 패턴 (0) | 2023.02.27 |
[디자인 패턴] 델리게이트 패턴 (1) | 2023.02.24 |
[Swift]Coordinator Pattern (1) | 2023.02.09 |