본문 바로가기

프로그래밍/Design Pattern

(3)
생성 패턴 - 싱글톤(Singleton) 1 singleton은 다음과 같은 뜻을 갖고 있다. 디자인 패턴에서의 싱글톤도 singleton의 사전적 의미와 크게 다르지 않다. 싱글톤을 살펴보기 전에 다음 코드를 살펴보자. // NonSingleton.swift class NonSingleton { var number: Int init(_ number: Int = 0) { self.number = number print("number가 \(number)인 인스턴스 생성") } } 해당 클래스의 인스턴스는 number라는 하나의 속성을 갖는다. 이 클래스를 이용해 두 개의 인스턴스를 다음과 같이 생성할 수 있다. 두 객체가 포함하는 각각의 number 변수는 1이라는 같은 값을 갖고 있지만, 두 객체는 명백히 다르다. 따라서 obj1에 포함되어 있는 ..
생성 패턴 - 팩토리(Factory) Factory는 공장을 뜻하는 영어 단어이다. 디자인 패턴 중 팩토리가 왜 팩토리라는 이름을 갖게 되었는지는 유추하면서 포스팅을 읽어 나가는 것도 좋을 것 같다. 먼저 다음 코드를 보자. (클래스 별로 파일을 쪼개고 싶지만, 너무 짧아서 Language.swift에 함께 넣었다) // Language.swift enum LanguageType { case Ko; case En; } protocol Language { func hello() -> String } class Korean: Language { public func hello() -> String { return "안녕" } } class English: Language { public func hello() -> String { return ..
디자인 패턴(Design Pattern) 얼마 전부터 "쉽게 배워 바로 써먹는 디자인 패턴(이호진 지음, 한빛미디어)" 책을 중심으로 디자인 패턴에 대해 공부하고 있는데, 객체 지향 언어에 대한 실용적인 활용을 알 수 있게 되어 좋은 것 같다. 책 소개를 잠깐 하자면, 패턴에 따라 3개(생성 패턴, 구조 패턴, 행위 패턴)의 파트로 되어 있고, 각각의 파트는 다시 여러 개의 챕터로 이루어져 있다. 각각의 챕터는 하나의 디자인 패턴을 중심으로 전개된다. 여기서 다루는 디자인 패턴은 GoF(Gang of Four)가 제시한 23개의 디자인 패턴을 포함하며, 추가로 Factory가 있다. (참고로 Factory은 Factory Method와 Abstract Factory으로 구체화된다) 책을 읽으면서 좋았던 점은, 각각의 챕터가 완전히 독립적이라는 ..