일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- philipshue
- EventLoop
- dartz
- network
- builder
- flutter
- singleton
- weatherkit
- concurrency
- state
- isolate
- GIT
- AppleDeveloper
- WiFi
- swift
- factory
- Adapter
- tuist
- OpenAI
- uikit
- dart
- iot
- SampleApp
- LifeCycle
- WWDC24
- Architecture
- SwiftUI
- 문법
- Xcode
- designpattern
- Today
- Total
목록공부 (12)
Jaebi의 Binary는 호남선
목차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..
목차Singleton클래스는 오직 하나의 instance를 가지고 있고 전역적인 접근을 제공함클래스 자체가 자기의 유일한 instance의 접근 방식을 관리 + 다른 인스턴스가 생성되지 않도록 함동기: 시스템에 프린터가 많이 있어도 프린터 스풀은 하나, 한 회사에서는 하나의 회계 시스템 운영활용성:클래스의 인스턴스가 오직 하나여야 함을 보장모든 사용자가 접근 할 수 있음유일한 인스턴스가 서브클래싱으로 확장되어야 함코드 수정 필요 없이 서브클래스의 인스턴스 사용 가능사용:클래스 인스턴스를 생성하는데 비용이 큼 - 인스턴스 생성에 외부 소스에서 데이터를 많이 가져와야하는 경우코드 전체에서 동일한 객체에 게속 접근을 해야할 경우 (e.g. logger)일종의 캐싱 계층이 필요할 경우 - 인스턴스 요청에서 캐시..