
Delegate Pattern 이란? Delegate라는 단어는 `위임하다` 라는 뜻을 지니고 있다. 즉 Delegate Pattern 이란 주로 객체의 행동(메소드) 또는 프로퍼티 의 구현을 다른 객체에게 맡겨야 할 필요가 있을 때 사용한다. 아래의 다이어그램을 살펴보자 Object using a delegate - delegate 가 필요하거나 사용하는 객체로, 어떤 이벤트가 발생했을 때 이에 대응되는 delegate 의 메소드를 호출한다. Delegate protocol - delegate object 가 구현해야 할 메소드들을 정의하는 protocol 이다. Object acting as a delegate - delegate protocol 을 준수하는 객체로, Object using a del..

Adapter Pattern 아이폰을 생각해보자. 지금의 아이폰은 오디오 단자가 따로 없으며, 만약 유선 헤드폰을 연결하려고 할 경우 유선 헤드폰이 라이트닝 단자를 가지고 있어야 한다. 그러나 상당 수의 유선 헤드폰은 라이트닝 단자를 가지고 있지않다. 이런 상황을 해결하기 위해 오디오 단자를 입력으로 받아 라이트닝 단자로 출력해주는 어댑터란 제품이 존재하며, 서로 호환되지 않는 두 개의 단자를 연결해주는 역할을 한다. 소프트웨어에서의 Adpater Pattern 도 마찬가지로 위와 같은 상황을 해결하기 위해서 고안된 디자인 패턴이다. 예시와 함께 이해해보자. Authenticate Service 현재 어떤 애플리케이션을 개발 중이고, 이 애플리케이션은 유저 인증을 위해 Firebase Authentica..

Strategy Pattern Strategy Pattern 은 런타임 동안 계속해서 변경될 수 있는 객체들의 인터페이스를 정의하는 디자인 패턴이다. Strategy Pattern 의 클래스 다이어그램을 살펴보자 Object using a strategy - iOS 개발을 진행할 때면 주로 View Controller 가 된다. Strategy Protoocl, 즉 전략을 직접 사용하는 객체가 된다. Strategy Protocol - 프로토콜을 준수하는 모든 객체가 구현해야 할 메소드, 혹은 프로퍼티를 정의한다. Strategies - Strategy Protocol 을 준수한 모든 Concrete object (구현체) 언제 Strategy Pattern 을 사용해야 할까? 두 개 혹은 그 이상의 같..
Comment