본문 바로가기

ios design pattern6

Design Pattern - Builder Pattern Builder Pattern 복잡한 Object 에 대해 initializer에서 필요한 모든 input을 입력하지 않고 단계별로 input을 줄 수 있게 한다. 빌더 패턴은 3가지 부분으로 나눠진다. director: input 을 accept 하고 builder 와 coordinate 한다. 대부분 view controller에 의해 사용되는 view controller 나 helper class 가 담당한다. product: 생성하기 힘든 복잡한 객체이다. struct 나 class 가 될 수 있고 대부분 model 역할이다. 그런데 use case 에 따라 아무 타입이나 다 될 수 있다. builder: 단계별로 input을 받고 product 의 생성을 처리한다. 대부분 class 이고 refe.. 2020. 8. 9.
Design Pattern - Observer Pattern Observer Pattern Observer 패턴은 하나의 Object 가 다른 Object의 변화를 관찰 할 수 있는 패턴이다. Apple 은 이 패턴을 Swift5.1에 언어수준에서 RxSwift 와 비슷한 Publisher 와 Combine 프레임워크를 통해서 공식적으로 지원하는 패턴으로 추가하였다. 패턴은 세가지 타입을 포함한다. subscriber: 변경된 사항에 대해 업데이트를 받는 관찰자 object publisher: observable(관찰가능한) object, 변경되면 업데이트를 subscriber 에게 알려줌 value: 객체의 변경된 값 Observer Pattern - 언제 사용해야 할까 다른 객체의 변경사항을 알고 싶을때 MVC 패턴에서 주로 쓰인다. Subscriber: vi.. 2020. 8. 9.
Design Pattern - Memento Pattern Memento Pattern 메멘토 패턴 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 메멘토 패턴(memento pattern)은 객체를 이전 상태로 되돌릴 수 있는 기능을 제공하는 소프트웨어 디자인 패턴이다. (롤백을 통한 �� ko.wikipedia.org 메멘토 패턴은 Object를 저장하거나 불러오게 할 수 있다. 3가지 부분으로 나눠진다. Originator: 저장되어야 할 객체이다. memento: 저장된 상태를 나타낸다. CareTaker: - save: careTaker는 originator에게 저장을 요청하고 memento 로부터 응답을 받는다. - restore: memento를 유지하는 역할을 담당하며 추후에 originator .. 2020. 8. 9.
Design Pattern - Singleton Pattern Singleton Pattern - 싱글톤 패턴 class 가 하나의 instance 만 가지도록 제한한다. 모든 class 에 대한 reference 는 하나의 같은 class 에 대한 instance를 참조한다. (Single) iOS 앱 개발에서 겁나 자주 쓰이고 Apple 이 광범위하게 쓴다. 다른 instance 를 생성하는 shared singleton instance를 제공하는 Singleton Plus 패턴도 자주 쓰인다. Singleton Pattern 언제 사용해야 할까? 하나 이상의 동일 class 의 instance 를 가지게 되면 문제가 생길때 로직상으로 하나 이상의 동일 class 에 대한 instance 를 가지면 안될때 Singleton Plus Pattern 언제 사용해야 .. 2020. 8. 9.
Design Pattern - Strategy Pattern Strategy Pattern Strategy Pattern 은 런타임에 set 되거나 switch 될 수 있는 interchangeable 한 객체의 집합을 정의한다. Who (Object Using a Strategy): interchangeable 해야 하는 객체가 담당할 수 있다. iOS 앱에서 이 부분은 view controller 가 담당한다. What (strategy protocol): 모든 strategy 가 반드시 구현해야할 메소드를 정의한다. How (Strategies): strategy protocol 을 준수하는 객체들이다. 언제 사용해야 할까 두개 이상의 다른 behavior이 interchangeable 해야 할 때 사용한다. 이 패턴은 delegation pattern 과 .. 2020. 8. 7.
Design Pattern - Introduction 디자인 패턴은 Design Patterns: Elements of Reusable, Object-Oriented Software 라는 책에서 처음 다뤄졌다. 흔히 발생하는 소프트웨어 개발 문제에 대한 재사용 가능한 템플릿 솔루션을 다웠다. 디자인 패턴은 어떤 특정 상황이 아닌, 문제 상황에서 해결을 위해 차용할 수 있는 솔루션인 것이다. not concrete implementation (정확히 정해진 완벽한? 규격? 이 없다) -> serve as starting points for writing code (디자인 패턴을 뼈대로 시작하는 것) 디자인 패턴 3가지 종류 Structural design pattern: 큰 구조를 위해 어떻게 object가 결합 되는지 설명한다. 예를들어 MVC, MVVM,.. 2020. 7. 14.