Notice
Recent Posts
Recent Comments
Link
Tags
- IOS
- UILabel
- UIKit
- Keychain
- GOF
- TOSS
- 야곰아카데미
- orthogonalScrollingBehavior
- Accessibility
- Apple
- HIG
- 스위프트
- DiffableDataSource
- Human Interface Guidelines
- 앱개발
- iTerm
- Swift
- github
- Split View
- 애플
- 전달인자 레이블
- CollectionView
- lineBreakMode
- 디자인패턴
- WWDC
- 애플사이다
- lineBreakStrategy
- Combine+UIKit
- iPad
- LanguageGuide
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Today
- Total
애플사이다의 iOS 개발 일지
[디자인 패턴] Builder - 초기화 과정이 복잡할 때 본문
문제 상황
- 여러 개의 프로퍼티, 중첩 타입 등을 지정해야 하므로 초기화 과정이 복잡한 객체가 존재한다.
- 이때 모든 가능한 매개변수를 포함하는 거대한 생성자를 만들게 되는데, 가독성이 떨어지고, 사용하지 않는 매개변수가 존재하므로 비효율적이라는 문제가 있다.
패턴 설명
- 복잡한 객체를 단계별로 생성하는 패턴이다.
- 객체를 생성하는 과정에서 해당 객체에 접근 불가하도록 막는다.
- Builder를 통해 객체를 초기화하고, 외부에서 프로퍼티값을 메서드 주입받아 객체를 완성한다.
- Director를 선택적으로 활용할 수 있다. Build 관련 메서드들의 실행 순서를 정의하는 역할을 담당한다.
객체를 종류별로 구분하여 생성 과정을 분기처리하고자 할 때 활용하면 좋다.
장점
- 복잡한 객체를 단계적으로 생성하거나, 생성 단계를 연기할 수 있다.
- 다양한 종류의 객체를 생성할 때 코드 재사용성이 좋다.
- 단일 책임 원칙을 준수한다.
단점
- Builder 타입 등 클래스/구조체를 추가해야 하므로 코드의 복잡도가 증가한다.
예시
'프로그래밍 철학' 카테고리의 다른 글
[toss] iOS 개발자를 위한 SIMPLICITY23 리뷰 - 디자이너와 친해지기 (7) | 2023.06.04 |
---|---|
[디자인 패턴] Singleton (0) | 2023.03.26 |
[디자인 패턴] Abstract Factory - 미리 정해둔 종류로만 객체를 생성할 때 (0) | 2023.01.16 |
[디자인 패턴] Factory Method - 비슷한 종류의 타입을 찍어낼 때 (0) | 2023.01.14 |
[디자인 패턴] Memento Pattern - 실행취소 기능이 필요할 때 (2) | 2022.03.23 |
Comments