iOS 캠프 TIL - 2021.04.26 월

Updated:

리나 & 라자냐 퀴즈

찌루루 & 꼬말 퀴즈

디자인 패턴 - 야곰 강의

  • 디자인 패턴이란? 천재 선배들의 삽질 기록물

디자인패턴을 강의를 처음 들었을 때랑 지금의 느낌이 어떤지

  • 소대
    • 뷰컨트롤러가 많은 프로젝트였는데 먼 뷰컨트롤러에 직접 접근하려니 코드가 너무 길어져서 이건 뭔가 아니라고 생각했었는데 라자냐가 델리게이트 패턴을 적용하면 될거라고 해서 적용했더니 코드가 엄청 간결해졌다

디자인 패턴의 분류

  • 생성
    • Factory Method Pattern
    • Prototype Pattern
  • 구조
  • 행위

Create Patterns

  • Factory Method Pattern
    • 인스턴스를 만드는 클래스를 추상화 하고플 때
    • 런타임에 상황에 맞는 인스턴스를 받아야 하는데 받는 입장에서는 신경쓸 필요 없음
    • Swift Standard Libaray에도 많이 쓰이는 패턴
  • Prototype Pattern
    • 테이블뷰 셀이 프토토타입 패턴을 사용 (스토리보드에서보면 프로토타입 셀 이라고 적혀있음)
  • Singleton Pattern
    • 하나의 인스턴스만 갖게 함

Structural Patterns

  • Adapter Pattern
  • Decorator Pattern
    • 케이크 방에 초콜릿을 바르면 초콜릿 케이크, 생크림 바르면 생크림 케이크가 되는 되는 느낌
    • 구체 타입 맥북이 있다면 ssd용량이나 cpu를 업그레이드 하듯이 데코레이트 하는 것
  • Facade Pattern
    • 겉으로 드러나는건 최소화하고 내부에서 처리해서 반환해줌
    • 겉(인터페이스)만 드러나게하고 나머지(내부 코드)는 감추는 방식
    • 라이브러리에 많이 사용

행위 패턴

  • Proxy Pattern
    • 가상 객체를 사용해서 로직단의 흐름 제어
    • 무거운 영상을 바로 편집하는게 아니라 가벼운 가상본(Proxy)을 편집하고, 결과적으로 원본을 편집하게 함
  • Iterator Pattern
  • Observer Pattern
    • 노티피케이션 센터에 사용
  • Strategy Pattern
    • 전략을 세워두고 런타임에 알고리즘을 선택할 수 있게하는 패턴

참고할 링크

  • https://refactoring.guru/design-patterns
  • https://github.com/ochococo/Design-Patterns-In-Swift
  • https://www.raywenderlich.com/477-design-patterns-on-ios-using-swift-part-1-2

Leave a comment