Design Pattern

브리지 패턴 거대한 클래스나 밀접하게 관련된 클래스들을 분리해서 독립적으로 수정이나 확장 기능을 가능하게 하는 structural 디자인 패턴 1.Abstraction(추상화)- Phone : 사용자가 상호 작용할 수 있는 인터페이스를 정의 protocol Phone { func makeCall() func sendMessage() } 2.Implementor(구현)- Software 구현은 추상화에서 정의한 인터페이스를 실제로 구현 protocol Software { func run() } 3.Refined Abstraction- SmartPhone 추상화를 구체적으로 구현하는 클래스 class SmartPhone: Phone { var software: Software init(software: So..
Singleton pattern ⭐️ 생성자가 여러번 호출되더라도 실제로 생성되는 객체는 하나고 최초 생성 이후에 호출된 생성자는 최초 생성자가 생성한 객체를 리턴⭐️ 실제로 생성되는 객체는 하나이며 그 인스턴스는 전역적인 접근을 제공 전역변수를 사용하지 않고 객체를 하나만 생성하여 모든 코드에서 그 객체에 접근할 수 있도록 하는 목적 주로 리소스나 설정을 담당하는 클래스 활용 구조체로는 싱글톤을 만들지 못한다 이유는? 값타입이기 때문에 인스턴스화하는 순간 메모리주소가 하나 더 생기기 때문이다 기본 싱글톤 기본 예시 class MySingleton { // 정적 상수로서 sharedInstance를 사용해 싱글톤 인스턴스에 접근 static let sharedInstance = MySingleton() ..
생성패턴이란? 객체의 생성에 관련된 패턴으로 객체의 생성절차를 추상화하는 패턴 객체를 생성 합성하는 방법이나객체의 표현방법과 시스템을 분리 객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않아서 유연성을 제공하게된다 추상 팩토리 패턴 이것 또한 예전 게임개발을 하던 중 사용해봤던 패턴중 하나였다 스토리 게임을 진행하는 일부 기능을 개발하던 중에 사용했었다 유저가 어떤 사용자를 선택해서 이야기를 진행하는 기능인데 유저의 어떤 선택에 따라서 자동으로 하나의 종류의 고양이그게 아니라면 강아지가 생성되어야 한다고 하면 cat을 선택하면 고양이가 종류별로 생성되고 강아지를 선택하면 강아지가 종류별로 생성된다 Swift에서는 어떻게 사용되어질까? 예를 들어 기존 B..
생성패턴이란? 객체의 생성에 관련된 패턴으로 객체의 생성절차를 추상화하는 패턴 객체를 생성 합성하는 방법이나객체의 표현방법과 시스템을 분리 객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않아서 유연성을 제공하게된다 팩토리 메서드 패턴 c#에서 게임을 만들 때 주구장창 썼었던 팩토리 메서드 패턴에 대해서 Swift언어로 다뤄보고자 한다 게임을 만들 때 몬스터 생성이나 건물 생성 부분에서 많이 사용했었다 이유는 건물도 목장 집 병원등 다양하지만 우선 지어지고나서의 모습 / 지어지는 단계의 모습 등 공통된것들이 있고 몬스터 같은 경우에도 이동/공격/죽음 등 이러한 액션들이 있다 이러한 작업들을 여러 곳에서 만들 때마다 실수하지 않을 수 있다 이렇게 생성할 때..
생성패턴(Creatioanl Pattern) 객체 인스턴스를 생성하는 패턴 클라이언트와 클라이언트가 생성해야하는 객체 인스턴스 사이의 연결을 끊어주는 패턴객체가 생성되는 과정의 유연성을 높이고 코드의 유지를 쉽게 만들어주는 패턴 우선 시작하기전 알아야할 지식! 깊은 복사와 얕은 복사란? 프로토타입 패턴을 사용하기전 얕은 복사와 깊은 복사에 대해서 알아야한다 - 얕은 복사 : Reference Type복사시 사용하는 방법 : 가리키고 있는 인스턴스의 주소값만으로 공유하고 같은 인스턴스를 가리키게 하는 방식 : 복사본을 수정한다고해도 원본데이터에도 영향(동일한 주소값을 가지기 때문)이 가기 때문에 주의가 필요함 -깊은 복사 : Value Type 복사시 사용하는 방법 : 데이터 자체를 복사하여 독립적인 메모..
생성패턴(Creatioanl Pattern) 객체 인스턴스를 생성하는 패턴 클라이언트와 클라이언트가 생성해야하는 객체 인스턴스 사이의 연결을 끊어주는 패턴 객체가 생성되는 과정의 유연성을 높이고 코드의 유지를 쉽게 만들어주는 패턴 빌더 패턴 주로 복잡한 객체를 생성할 때 사용하는 생성 디자인 패턴 빌더 패턴은 보통 공장 시스템을 예시로 들 수 있다 첫 번째 예시 ) 공장에서도 한가지 제품에 내부에 여러가지 성능이나 다양한 부품을 가지고 만드는 과정이라고 볼 수 있다 두 번째 예시 ) 이어폰이란 객체를 만든다고 하면 기본적으로 듣는게 가능하면 된다지만 부수적으로 blutooth 기능 / noise 기능 / 선 없이 / 버튼의 갯수 복잡하게 많은 파라미터를 넣어 객체를 생성하지 않고 차례대로 값을 넣고 객체..
iOSDEv
'Design Pattern' 카테고리의 글 목록