Submit Search
Upload
[Swift] Decorator
•
0 likes
•
24 views
Bill Kim
Follow
Swift 소스 코드를 통한 Decorator 디자인패턴에 관한 강의 자료입니다.
Read less
Read more
Education
Report
Share
Report
Share
1 of 10
Download now
Download to read offline
Recommended
StarUML NS Guide - Architectural design
StarUML NS Guide - Architectural design
태욱 양
StarUML NS Guide - Design
StarUML NS Guide - Design
태욱 양
[Swift] Adapter
[Swift] Adapter
Bill Kim
Angular2를 위한 컴포넌트 분석과 개발
Angular2를 위한 컴포넌트 분석과 개발
Jin wook
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
Taekyu Lim
전달교육(분석설계모델링)
전달교육(분석설계모델링)
gimslide
Spring Framework - Inversion of Control Container
Spring Framework - Inversion of Control Container
Kyung Koo Yoon
[Swift] Proxy
[Swift] Proxy
Bill Kim
Recommended
StarUML NS Guide - Architectural design
StarUML NS Guide - Architectural design
태욱 양
StarUML NS Guide - Design
StarUML NS Guide - Design
태욱 양
[Swift] Adapter
[Swift] Adapter
Bill Kim
Angular2를 위한 컴포넌트 분석과 개발
Angular2를 위한 컴포넌트 분석과 개발
Jin wook
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
Taekyu Lim
전달교육(분석설계모델링)
전달교육(분석설계모델링)
gimslide
Spring Framework - Inversion of Control Container
Spring Framework - Inversion of Control Container
Kyung Koo Yoon
[Swift] Proxy
[Swift] Proxy
Bill Kim
Image styling with_web_components
Image styling with_web_components
민정 김
Codex project
Codex project
Lee Jungpyo
Builder, prototype, singleton pattern
Builder, prototype, singleton pattern
YoonJong Choi
[Swift] Mediator
[Swift] Mediator
Bill Kim
[Swift] Factory Method
[Swift] Factory Method
Bill Kim
Component configurator
Component configurator
scor7910
Design patterns
Design patterns
Joshua Yoon
[스프링 스터디 2일차] AOP
[스프링 스터디 2일차] AOP
AnselmKim
06_게임엔진구성
06_게임엔진구성
noerror
iOS Modular Architecture with Tuist
iOS Modular Architecture with Tuist
정민 안
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리
Gyuwon Yi
How to build Design System?
How to build Design System?
John Kim
Bridge
Bridge
청우 옥
19_DLL의 기본.pptx
19_DLL의 기본.pptx
ssuser0c2478
Polymer따라잡기
Polymer따라잡기
Han Jung Hyun
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
NAVER D2
프로젝트 아나키로 Rpg 만들기 프로그래밍
프로젝트 아나키로 Rpg 만들기 프로그래밍
Alex Kang
Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]
Woojin Joe
앵귤러 첫걸음(Angular for beginers)
앵귤러 첫걸음(Angular for beginers)
양 한빛
[Swift] Builder
[Swift] Builder
Bill Kim
[Algorithm] Sorting Comparison
[Algorithm] Sorting Comparison
Bill Kim
[Algorithm] Big O Notation
[Algorithm] Big O Notation
Bill Kim
More Related Content
Similar to [Swift] Decorator
Image styling with_web_components
Image styling with_web_components
민정 김
Codex project
Codex project
Lee Jungpyo
Builder, prototype, singleton pattern
Builder, prototype, singleton pattern
YoonJong Choi
[Swift] Mediator
[Swift] Mediator
Bill Kim
[Swift] Factory Method
[Swift] Factory Method
Bill Kim
Component configurator
Component configurator
scor7910
Design patterns
Design patterns
Joshua Yoon
[스프링 스터디 2일차] AOP
[스프링 스터디 2일차] AOP
AnselmKim
06_게임엔진구성
06_게임엔진구성
noerror
iOS Modular Architecture with Tuist
iOS Modular Architecture with Tuist
정민 안
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리
Gyuwon Yi
How to build Design System?
How to build Design System?
John Kim
Bridge
Bridge
청우 옥
19_DLL의 기본.pptx
19_DLL의 기본.pptx
ssuser0c2478
Polymer따라잡기
Polymer따라잡기
Han Jung Hyun
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
NAVER D2
프로젝트 아나키로 Rpg 만들기 프로그래밍
프로젝트 아나키로 Rpg 만들기 프로그래밍
Alex Kang
Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]
Woojin Joe
앵귤러 첫걸음(Angular for beginers)
앵귤러 첫걸음(Angular for beginers)
양 한빛
[Swift] Builder
[Swift] Builder
Bill Kim
Similar to [Swift] Decorator
(20)
Image styling with_web_components
Image styling with_web_components
Codex project
Codex project
Builder, prototype, singleton pattern
Builder, prototype, singleton pattern
[Swift] Mediator
[Swift] Mediator
[Swift] Factory Method
[Swift] Factory Method
Component configurator
Component configurator
Design patterns
Design patterns
[스프링 스터디 2일차] AOP
[스프링 스터디 2일차] AOP
06_게임엔진구성
06_게임엔진구성
iOS Modular Architecture with Tuist
iOS Modular Architecture with Tuist
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리
How to build Design System?
How to build Design System?
Bridge
Bridge
19_DLL의 기본.pptx
19_DLL의 기본.pptx
Polymer따라잡기
Polymer따라잡기
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
프로젝트 아나키로 Rpg 만들기 프로그래밍
프로젝트 아나키로 Rpg 만들기 프로그래밍
Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]
앵귤러 첫걸음(Angular for beginers)
앵귤러 첫걸음(Angular for beginers)
[Swift] Builder
[Swift] Builder
More from Bill Kim
[Algorithm] Sorting Comparison
[Algorithm] Sorting Comparison
Bill Kim
[Algorithm] Big O Notation
[Algorithm] Big O Notation
Bill Kim
[Algorithm] Shell Sort
[Algorithm] Shell Sort
Bill Kim
[Algorithm] Radix Sort
[Algorithm] Radix Sort
Bill Kim
[Algorithm] Quick Sort
[Algorithm] Quick Sort
Bill Kim
[Algorithm] Heap Sort
[Algorithm] Heap Sort
Bill Kim
[Algorithm] Counting Sort
[Algorithm] Counting Sort
Bill Kim
[Algorithm] Selection Sort
[Algorithm] Selection Sort
Bill Kim
[Algorithm] Merge Sort
[Algorithm] Merge Sort
Bill Kim
[Algorithm] Insertion Sort
[Algorithm] Insertion Sort
Bill Kim
[Algorithm] Bubble Sort
[Algorithm] Bubble Sort
Bill Kim
[Algorithm] Binary Search
[Algorithm] Binary Search
Bill Kim
[Algorithm] Recursive(재귀)
[Algorithm] Recursive(재귀)
Bill Kim
[Swift] Data Structure - AVL
[Swift] Data Structure - AVL
Bill Kim
[Swift] Data Structure - Binary Search Tree
[Swift] Data Structure - Binary Search Tree
Bill Kim
[Swift] Data Structure - Graph(BFS)
[Swift] Data Structure - Graph(BFS)
Bill Kim
[Swift] Data Structure - Graph(DFS)
[Swift] Data Structure - Graph(DFS)
Bill Kim
[Swift] Data Structure - Binary Tree
[Swift] Data Structure - Binary Tree
Bill Kim
[Swift] Data Structure - Tree
[Swift] Data Structure - Tree
Bill Kim
[Swift] Data Structure - Graph
[Swift] Data Structure - Graph
Bill Kim
More from Bill Kim
(20)
[Algorithm] Sorting Comparison
[Algorithm] Sorting Comparison
[Algorithm] Big O Notation
[Algorithm] Big O Notation
[Algorithm] Shell Sort
[Algorithm] Shell Sort
[Algorithm] Radix Sort
[Algorithm] Radix Sort
[Algorithm] Quick Sort
[Algorithm] Quick Sort
[Algorithm] Heap Sort
[Algorithm] Heap Sort
[Algorithm] Counting Sort
[Algorithm] Counting Sort
[Algorithm] Selection Sort
[Algorithm] Selection Sort
[Algorithm] Merge Sort
[Algorithm] Merge Sort
[Algorithm] Insertion Sort
[Algorithm] Insertion Sort
[Algorithm] Bubble Sort
[Algorithm] Bubble Sort
[Algorithm] Binary Search
[Algorithm] Binary Search
[Algorithm] Recursive(재귀)
[Algorithm] Recursive(재귀)
[Swift] Data Structure - AVL
[Swift] Data Structure - AVL
[Swift] Data Structure - Binary Search Tree
[Swift] Data Structure - Binary Search Tree
[Swift] Data Structure - Graph(BFS)
[Swift] Data Structure - Graph(BFS)
[Swift] Data Structure - Graph(DFS)
[Swift] Data Structure - Graph(DFS)
[Swift] Data Structure - Binary Tree
[Swift] Data Structure - Binary Tree
[Swift] Data Structure - Tree
[Swift] Data Structure - Tree
[Swift] Data Structure - Graph
[Swift] Data Structure - Graph
[Swift] Decorator
1.
SWIFT Decorator Bill Kim(김정훈) |
ibillkim@gmail.com
2.
목차 •Decorator •Structure •Implementation •References
3.
Decorator Decorator(데코레이터) 디자인 패턴은
특정 객체에 대해서 새로 운 기능을 동적(Run-time)으로 추가하기 위한 구조 설계 패턴입니 다. 객체에 동적으로 기능을 추가하고 코드의 추가를 숨기고 싶은 경우 사용하면 좋습니다. 또한 상속을 통해서 객체를 확장할 수 없는 경우에서도 사용할 수 있습니다.
4.
Decorator Decorator 패턴을 UML로
도식화하면 아래와 같습니다.
5.
Structure Component : 기능을
동적으로 확장하기위해 기본이 되는 추상 클 래스 객체 ConcreteComponent : 컴포넌트(Component) 객체의 인터페이 스를 구체화시키는 객체 Decorator : Component 객체를 소유하며 Component의 인터 페이스를 실행하는 객체 ConcreteDecorator : Decorator 가 가지고 있는 Component 객체에 대한 인터페이스의 구체화를 실현하는 객체
6.
Implementation 구체적인 구현에 대해서
소스 코드를 통하여 살펴봅니다. protocol Component { func operation() -> String } class ConcreteComponent: Component { func operation() -> String { return "ConcreteComponent operation" } } class Decorator : Component { private var component: Component init(_ component: Component) { self.component = component } func operation() -> String { return component.operation() } }
7.
Implementation class ConcreteDecoratorA :
Decorator { override func operation() -> String { return "ConcreteDecoratorA(" + super.operation() + ")" } } class ConcreteDecoratorB : Decorator { override func operation() -> String { return "ConcreteDecoratorB(" + super.operation() + ")" } } let component = ConcreteComponent() print("Result: " + component.operation()) // Result: ConcreteComponent operation let decorator1 = ConcreteDecoratorA(component) print("Result: " + decorator1.operation()) // Result: ConcreteDecoratorA(ConcreteComponent operation) let decorator2 = ConcreteDecoratorB(decorator1) print("Result: " + decorator2.operation()) // Result: ConcreteDecoratorB(ConcreteDecoratorA(ConcreteComponent operation))
8.
References [1] [Swift-Design Pattern]
데코레이터 패턴(Decorator pattern) : http://throughkim.kr/2019/09/09/swift-decorator/ [2] Decorator in Swift : https://refactoring.guru/design- patterns/decorator/swift/example#lang-features [3] [DesignPattern]데코레이터 패턴(Decorator Pattern) : http://minsone.github.io/programming/designpattern- decorator [4] Top 5 스위프트 디자인 패턴 (번역) : https:// leejigun.github.io/Top_5_Design_Patterns [5] Design Patterns in Swift: Decorator Pattern : https:// medium.com/design-patterns-in-swift/design-patterns-in- swift-decorator-pattern-2026e7112869
9.
References [6] Decorator pattern
in Swift : https://medium.com/jeremy- codes/decorator-pattern-in-swift-e5fa11ea3c3f [7] Swift Solutions: Decorator Pattern : https://swiftcraft.io/ decorator-pattern-swift/ [8] [Design Pattern] 데코레이터(Decorator) 패턴 - 디자인 패턴 : https://palpit.tistory.com/193 [9] 데코레이터 패턴(Decorator Pattern) : https:// unabated.tistory.com/entry/데코레이터-패턴Decorator-Pattern [10] Design Patterns on iOS using Swift – Part 1/2 : https:// www.raywenderlich.com/477-design-patterns-on-ios-using- swift-part-1-2
10.
Thank you!
Download now