250x250
반응형
05-20 22:36
Today
Total
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Notice
Recent Posts
Recent Comments
Link
Archives
관리 메뉴

Bill Kim's Life...

[디자인패턴] Factory(팩토리) : 객체 생성 로직을 숨긴채 객체 생성 본문

CS(컴퓨터 과학)/Design Patterns

[디자인패턴] Factory(팩토리) : 객체 생성 로직을 숨긴채 객체 생성

billnjoyce 2020. 6. 12. 15:39
728x90
반응형
디자인패턴에의 Factory(팩토리)에 대하여 Swift를 기반으로 하여 살펴봅니다.

 

 

#. 구독 대상

  • 컴퓨터 및 소프트웨어 공학과 관련자
  • 소프트웨어 관련 종사자 
  • 기타 컴퓨터 공학에 관심이 있으신 분
  • 디자인패턴의 개념을 잡고 싶으신 분
  • 기타 소프트웨어 개발과 지식에 관심이 있으신 모든 분들
  • Swift 언어를 활용하여 디자인패턴을 공부해보고 싶으신 분들

 

 


 

Factory(팩토리)

 

Factory(팩토리) 디자인 패턴은 객체 생성과 관련된 디자인 패턴으로서 사용자에게 객체 생성 로직을 노출하지 않은채 객체를 생성하기 위해서 제공되는 패턴입니다.

 

사용자는 단순히 필요한 객체의 생성 로직을 신경쓰지 않고 특정 객체에 대해서 가져올 수 있습니다.

 

 

 

 


 

 

 

구조

 

팩토리 패턴을 UML로 도식화하면 아래와 같습니다. 

 

 

 

 

 

 

 

 


 

 

 

 

Implementation

 

class Factory {
    func makePen() -> Pen {
        return Pen()
    }
    
    func makePencil() -> Pencil {
        return Pencil()
    }
}

class Pen {
    init() {
        print("Pen init")
    }
    
    func make() {
        print("Make a pen.")
    }
}

class Pencil {
    init() {
        print("Pencil init")
    }
    
    func make() {
        print("Make a pencil.")
    }
}

let factory = Factory()
        
let pen = factory.makePen() // Pen init
pen.make() // Make a pen.
        
let pencil = factory.makePencil() // Pencil init
pencil.make() // Make a pencil.

 

 

 


 

 

 

이상으로 Swift를 기반으로하여 Factory(팩토리) 디자인 패턴을 설명하였습니다.

오늘은 짧지만 Factory 패턴의 기본 개념과 사용 예제를 코드를 통해서 살펴보았습니다.

 

그럼 오늘 하루도 잘 마무리하시기 바랍니다.

 

 

 

감사합니다.

 

 

 

 

 

 

www.slideshare.net/BillKim8/swift-factory

 

[Swift] Factory

Swift 소스 코드를 통한 Factory 디자인패턴에 관한 강의 자료입니다.

www.slideshare.net

github.com/billnjoyce/Lectures/tree/master/src/designpatterns

 

billnjoyce/Lectures

Contribute to billnjoyce/Lectures development by creating an account on GitHub.

github.com

 

 

 

 


[참고 자료(References)]

 

[1] Design Pattern - Factory : https://ehdrjsdlzzzz.github.io/2019/04/03/Design-Pattern-Factory/

[2] Factory Pattern(swift) : https://linsaeng.tistory.com/5

[3] Design Pattern - Factory : https://ehdrjsdlzzzz.github.io/2019/04/03/Design-Pattern-Factory/

[4] Swift : Factory Pattern : https://medium.com/@mayooresan/swift-factory-pattern-6f0d7556d862

[5] Design Pattern) 팩토리 패턴 : https://o-o-wl.tistory.com/18

[6] Objective-c로 구현한 Factory Pattern (Protocol을 이용한 추상 팩토리) : https://thdev.net/321

[7] Design Patterns — Creational Patterns — Factory Pattern in Swift : https://medium.com/swift-programming/design-patterns-creational-patterns-factory-pattern-in-swift-d049af54235b

[8] 18일차 [디자인 패턴] 팩토리 패턴 : https://woovictory.github.io/2019/02/07/Design-Pattern-Factory-Pattern/

[9] 디자인 패턴 : 추상 팩토리 vs 팩토리 메소드 : https://www.it-swarm.dev/ko/design-patterns/디자인-패턴-추상-팩토리-vs-팩토리-메소드/970371311/

[10] 디자인패턴 - 팩토리 패턴 (factory pattern) : https://jusungpark.tistory.com/14

728x90
반응형
Comments