일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SwiftUI
- swift
- 문법
- SampleApp
- uikit
- factory
- philipshue
- dartz
- WWDC24
- Architecture
- Adapter
- network
- GIT
- EventLoop
- WiFi
- weatherkit
- flutter
- LifeCycle
- state
- AppleDeveloper
- builder
- isolate
- concurrency
- OpenAI
- designpattern
- dart
- iot
- singleton
- tuist
- Xcode
- Today
- Total
목록designpattern (7)
Jaebi의 Binary는 호남선
목차Template알고리즘의 뼈대만의 정의 하고 각 단계에서 수행할 구체적 처리는 서브클래스 쪽으로 미룸알고리즘의 구조 차체는 변화 없이 각 단계 처리를 서브클래스 에서 재정의 할 수 있게 함거의 모든 추상 클래스에서 사용할 정도로 필수적이고 기본적인 패턴 → 코드 재사용의 기본 기술동기: 예시로 3단계의 동작을 하는 알고리즘 (데이터 소스에서 read, process, provide result) → 3rd party API를 통해 데이터를 받아와 console에 띄우는 경우가 있을 수 있고, local disk에서 데이터를 읽어 email로 보내는 경우가 있을수 있음 → 둘 다 같은 동작의 알고리즘 (3단계)을 사용함 → Template Method Pattern을 통해 해당 기능 적용활용성:어떤 한..
목차State (Object for State)객체의 내부 state에 따라 스스로 행동을 변경할수 있게 하여 객체가 자신의 클래스를 바꾸는것 처럼 보임동기: 네트워크 연결 클래스는 Success, Listening, Closed의 상태를 가질수 있으며 현재 상태에 따라 다르게 반응함활용성:객체의 행동이 상태에 따라 달라질 수 있음객체의 상태에 따라서 런타임에 행동이 바뀌어야 함사용:상태에 따라 다르게 동작하는 객체가 있고, 상태의 수가 많고, 상태관련 코드가 자주 변경되는 경우구조:Context: 사용자가 관심있는 인터페이스, 객체의 현재 상태를 정의한 ConcreteState 서브클래스의 인스턴스를 유지관리State: Context의 각 상태별로 필요한 행동을 캡슐화 하여 인터페이스로 정의Concre..
목차Adapter (wrapper)클래스의 인터페이스를 사용자가 기대하는 인터페이스 형태로 변환, 서로 일치 하지 않는 인터페이스를 갖는 클래스를 함께 동작 시킴인터페이스는 호환되지 않을 수 있지만 내부 기능은 필요에 적합해야 함동기: 3rd party 라이브러리를 사용하는데 특정 인터페이스를 확용해야 하는 클래스가 있지만 호환이 안됨 → 코드와 라이브러리의 코드 사이에 wrapping하는 Adapter 클래스를 만들어 사용사용:기존 클래스를 사용하고 싶은데 인터페이스가 맞지 않을 때이미 만든것을 재사용 하고자 하나 이 재사용 가능한 라이브러리를 수정할 수 없을때구조:클래스 adapter는 다중 상속을 활용하여 한 인터페이스를 다른 인터페이스에 적용객체 adapter는 객체 합성을 써서 적용Target:..
목차Factory Method (Virtual Constructor)객체를 생성하기 위해 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 서브클래스가 함활용성:어떤 클래스가 자신이 생성해야 하는 객체의 클래스를 예측할 수 없을때생성할 객체를 기술하는 책임을 자신의 서브클래스가 지정했으면 할 때구조:Product: 팩토리 메서드가 생성하는 객체의 인터페이스ConcreteProduct: Product 클래스에 정의된 인터페이스를 실제 구현Creator: Product 타입의 객체를 반환하는 팩토리 메서드를 선언, 팩토리 메서드는 ConcreteProduct 객체를 반환, Product 객체의 생성을 위해 팩토리 메서드를 호출ConcreteCreator: 팩토리 메서드를 재정의하여 C..