Abstract Factory

[Swift 디자인 패턴] Abstract Factory Pattern (추상 팩토리) - 디자인 패턴 공부 2

Intent

추상 팩토리 패턴의 목적은 구체적인 클래스를 지정하지 않고 관련된 객체들을 모으기 위한 인터페이스를 제공하는 것이다. 또한 코드를 변경하지 않고도 조건에 따른 적절한 객체를 사용할 수 있게 해준다.

Problem

새로운 가구 객체를 생성했을 때, 이 객체들이 기존의 같은 패밀리 내에 있는 다른 가구 객체들과 일치하는 변형(스타일)을 가지도록 할 방법이 필요하다.

가구 공급업체들은 카탈로그를 자주 변경하기 때문에, 새로운 제품을 기존 코드에 추가할 때마다 변경해야 하는 번거로움이 있다.

Solution

UI를 만들 때 스크롤 바, 버튼과 같은 View를 사용해서 만들게 되는데, 이들은 모두 다른 모양과 동작을 한다. 이들은 모양과 동작은 다르지만 모두 관련이 되어있다고 할 수 있다. 이러한 객체들을 프로그램 내에서 모두 각자 다른 객체로 만들게 되면 나중에 수정이 어려울 수 있기 때문에 이러한 객체들을 표현하는 하나의 추상 클래스를 정의하여 이를 해결하기 위한 방법으로 만들어졌다.

각 제품에 해당하는 개별적인 인터페이스를 명시적으로 선언하는 것이다. 그 다음, 제품의 모든 변형이 위의 인터페이스를 따르도록 한다.

Untitled

Structure