[iOS] 프로그래밍 디자인 패턴

RudinP·2023년 11월 3일
0

Study

목록 보기
102/227

프로그래밍 디자인 패턴

  • 특정 문제 상황에서 해당 문제를 해결하는 방법을 정형화 한것
  • ex) 싱글톤..
  • GoF(Gang of Four)
    • "특정한 상황에서 일반적 설계문제를 해결하기 위해 상호교류하는 수정 가능한 객체와 클래스들에 대한 설명이다."

디자인 패턴의 분류

목적을 기준으로 한 분류

  • 생성 (Creational Pattern)
    객체의 생성 과정에 관여하는 패턴
  • 구조 (Structural Pattern)
    클래스나 객체의 구성을 통해 더 큰 구조로 만들 수 있게 해주는 것과 관련된 패턴
  • 행위 (Behavioral Pattern)
    패턴을 주로 클래스에 적용하는지 아니면 객체에 적용하는지에 따라 구분되는 패턴

범위를 기준으로 한 분류

  • 클래스 패턴 (Class Pattern)
    클래스들과 하위 클래스 간의 관계를 다루는 패턴
    컴파일 시에 관계가 결정
  • 객체 패턴 (Object Patterns)
    객체 간의 관계를 다루며 보통 구성을 통해 정의
    객체 패턴은 일반적으로 실행시간에 관계가 생성되기 때문에 더 동적이면서 유연

디자인 패턴의 종류

  • 싱글턴 패턴 (Singleton Pattern)
    • 목적 : 생성
    • 범위 : 객체
      객체의 생성에 관련된 패턴으로서 특정 클래스의 인스턴스가 오직 하나임을 보장하고 이 인스턴스에 접근할 방법을 제공
  • 퍼사드 패턴 (Facade Pattern)
    • 목적 : 구조
    • 범위 : 객체
      개발자가 사용해야 하는 서브 시스템의 가장 앞쪽에 위치하면서 하위 시스템에 있는 객체들을 사용할 수 있도록 하는 역할을 함.
      시스템의 복잡성을 줄이기 위해 서브 시스템을 구조화하고 서브 시스템으로의 접근을 하나의 퍼사드 객체로 제공하는 패턴
  • 옵저버 패턴 (Observer Pattern)
    • 목적 : 행위
    • 범위 : 객체
      객체의 상태변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 패턴
  • 스트래티지 패턴 (Strategy Pattern)
    • 목적 : 행위
    • 범위 : 객체
      알고리즘을 담당하는 각각의 클래스를 만들어 책임을 분산하기 위한 목적으로 만든 행위 패턴
  • 팩토리 패턴 (Factory Pattern)
    • 목적 : 생성
    • 범위 : 클래스
      객체를 생성하기 위한 인터페이스를 정의하지만 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 하위 클래스에서 이루어지도록 인스턴스 생성의 책임을 떠넘기는 패턴
  • 어댑터 패턴 (Adapter Pattern)
    • 목적 : 구조
    • 범위 : 클래스, 객체
      클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴으로, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 동작하도록 해줌

출처: 야곰

profile
곰을 좋아합니다. <a href = "https://github.com/RudinP">github</a>

0개의 댓글