아이폰 개발/디자인 패턴12 swift 디자인패턴 - Strategy Pattern swift 디자인패턴 - Strategy Pattern 언제 사용하나? 어떤 상황에서 사용할 알고리즘이 여러개 존재할때 사용한다. 알고리즘을 런타임에서 변경해야 할때 사용한다. 예) 결제를 할때 결제 수단 선택하기 - 신용카드로 결제, 마일리지로 결제, 포인트로 결제, 쿠폰으로 결제 등등 검색할때 검색 조건 선택하기 - 전체검색, 이미지검색, 뉴스 검색 등등 장점 런타임에서 알고리즘을 변경 할 수 있다. 알고리즘을 사용하는 코드와 알고리즘을 구현하는 코드를 분리할 수 있다. 알고리즘을 사용하는 코드 context를 변경하지 않고도 새로운 전략 기능을 추가 할 수 있다. 단점 알고리즘이 몇개 없을때 복잡성을 증가 시킬수 있다. strategy, context간 통신오버헤드가 발생한다. 목표 인터페이스 개념.. 2021. 8. 22. swift 디자인패턴 - Facade Pattern swift 디자인패턴 - Facade Pattern 퍼사드 패턴의 키워드는 단순한 접근이다. 복잡한 서브시스템을 단순한 하나의 시스템인 퍼사드 클래스를 이용해서 간단하게 접근하게 한다는 개념이다. Facade 어떤 Subsystem 클래스가 클라이언트의 요청에 응답해야 하는지 알고 있습니다. 클라이언트의 요청을 적절한 Subsystem에게 전달합니다. Subsystem Subsystem 기능을 구현합니다. Facade 객체에서 전달받은 요청을 처리합니다. 서브 시스템 클래스들은 Facade 객체의 존재를 모릅니다. Client 클라이언트는 서브 시스템 객체를 직접 호출하는 대신 Facade를 사용합니다. import Foundation /// 서브 시스템 1 class Subsystem1 { func o.. 2021. 8. 21. swift 디자인패턴 - Adapter Pattern swift 디자인패턴 - Adapter Pattern 언제 사용하나? 1.연관성 없는 두객체를 묶어서 사용해야할때. 2.타사의 라이브러리 or 모듈을 사용해야 할때. 3.같은 프로젝트에서 다른팀이 구현해 놓은 클래스의 기능을 가져다 사용할때. 4.A 팀이 신용카드를 등록하고 조회하는 클래스를 만들어 놓았다. B 팀은 Adapter Pattern 을 만들어서 그 기능을 가져온 다음에 가공해서 사용하면된다. 해결 목표? 이미 주어진 알고리즘(Math 클래스)을 나만의 요구사항에 맞춰서 사용할 수 있다. Adapter의 사전적 의미? 기계. 기구등을 다목적으로 사용하기 위한 부가적인 기구 기본 설계 요구사항 예제 1 import UIKit /// 이미주어진 알고리즘 or 타사의 라이브러리 or 다른 팀의 모듈.. 2021. 8. 21. 이전 1 2 다음