디자인패턴
[디자인 패턴] 팩토리 메서드 패턴(Factory Method Pattern)
팩토리 패턴(Factroy Pattern) 팩토리 패턴은 어떤 객체를 생성할 때, 그 객체를 사용하는 객체에서 직접 객체의 인스턴스를 생성하는게 아니라, 팩토리라는 객체에게 그 작업을 맡겨 의존성을 주입받는 방법이다. 팩토리패턴의 장점은 객체의 생성을 한 번 캡슐화 할 수 있다는 것이다. 그 효과로 첫 번째는 인스턴스의 생성에 비즈니스 로직이 끼어있을 때, 이 로직을 의존성을 가지는 객체로부터 분리할 수 있다는 것이고, 두 번째 효과는 다형성을 통해 언제든지 인스턴스를 생성하는 팩토리를 유연하게 변경할 수 있다는 것이다. 구체적인 객체의 생성방식에 대해 알 필요가 없어지며 객체 생성 로직의 중복을 제거하고 유지보수성을 향상시킨다. 만약 어떤 인스턴스를 만드는 과정이 바뀐다 하더라도 의존성을 가지는 개체는..
[디자인패턴] - MVC 패턴
디자인패턴이 뭘까❓ 공통의 문제에 검증된, 정형화된 해결책 건축으로 비유하자면 여러 건축공법이 있다. 한 개의 건물을 짓기 위해 다양한 건축공법을 활용해 다양한 방법으로 지을 수 있다. 그렇듯 코딩에서도 코딩공법?이 있다. 앱의 아키텍처도 여러가지가 있다 예) Singletom패턴, Delegate패턴, MVC, MVVM, MVP... 디자인 패턴이 필요한 이유가 뭘까❓ 결국 앱 하나를 만들기 위해 여러명의 개발자가 하나의 앱을 함께 작업한다. 여러명이 함께 작업할 때 효율적인 유지보수성, 지속적인 기능 개발, 추가와 이를 위한 효율성을 위한 템플릿화가 필요하기 때문이다. 💥 MVC(Model-View-Controller) 디자인패턴 MVC는 Model, View, Controller의 약자이다. 하나의..
iOS. Delegate Pattern
Delegate: 대리자. 위임자. 위임하다 Delegate패턴은 위임자를 갖고있는 객체가 다른 객체에게 자신의 일을 위임하는 형태의 디자인 패턴이다. Delegate Pattern 델리게이트 패턴은 보통 "객체가 자신의 책임을 다른 객체에게 위임(delegate)하는 디자인 패턴"이라고 설명된다. 예를 들어 테이블뷰는 셀을 탭했을 때 어떤 행동을 할지에 대한 책임을 뷰컨트롤러에게 UITableViewDelegate를 사용해 위임한다. 테이블뷰 이외에도 콜력션뷰, 텍스트필드 등 많은 UI요소들이 델리게이트패턴을 사용해 다른 객체에게 책임을 위임한다. 예제 1. 델리게이트란? struct Cookie{ var size: Int = 5 var hasChocolateChips: Bool = false } cl..
[디자인 패턴] 싱글톤 패턴 (Singleton Pattern) feat. Swift
싱글톤 패턴 (Singleton Pattern) - 앱 구현시에, 유일하게 한개만 존재하는 객체가 필요한 경우에 사용 (특정한 유일한 데이터/관리 객체가 필요한 경우) - 한번 생성된 이후에는 앱이 종료될때까지, 유일한 객체로 메모리에 상주 - 유일하게 한 개만 존재하는 객체이기 때문에 타입속성과 유사하다. class Singleton { // 타입 프로퍼티(전역변수)로 선언 static let shared = Singleton() // 자신의 객체를 생성해서 전역변수에 할당 var userInfoId = 58132 } Singleton.shared //처음 접근하는 순간 shared객체 생성 let object = Singleton.shared //같은 싱글톤을 가리키게 할 수 있다. object.us..