본문 바로가기
Swift

Swift에서 추상 팩토리 패턴(Abstract Factory Pattern)의 개념과 예제

by mr.conan 2023. 6. 15.
728x90
반응형

추상 팩토리 패턴(Abstract Factory Pattern) 소프트웨어 개발에서 사용되는 디자인 패턴 하나입니다. Swift에서도 추상 팩토리 패턴을 활용하여 객체 생성을 추상화하고 관련된 객체들의 패밀리를 생성할 있습니다. 블로그 포스트에서는 추상 팩토리 패턴의 개념을 소개하고, Swift 구현된 예제를 통해 추상 팩토리 패턴의 사용법을 알아보겠습니다.

 

추상 팩토리 패턴의 개념:

추상 팩토리 패턴은 객체 생성을 추상화하는 패턴으로, 관련된 객체들의 패밀리를 생성하기 위한 인터페이스를 제공합니다. 이 패턴은 클라이언트 코드와 구체적인 클래스들 간의 의존성을 줄이고, 코드의 유연성과 확장성을 향상시킬 수 있습니다. 추상 팩토리 패턴은 특히 객체들의 패밀리가 함께 변경되어야 하는 경우 유용합니다.

추상 팩토리 패턴 예제:

protocol Shape {
    func draw()
}

class Circle: Shape {
    func draw() {
        print("Drawing a circle.")
    }
}

class Square: Shape {
    func draw() {
        print("Drawing a square.")
    }
}

protocol AbstractFactory {
    func createShape() -> Shape
}

class CircleFactory: AbstractFactory {
    func createShape() -> Shape {
        return Circle()
    }
}

class SquareFactory: AbstractFactory {
    func createShape() -> Shape {
        return Square()
    }
}

위의 예제에서는 Shape 프로토콜을 정의하고, Circle과 Square 클래스가 이를 구현합니다. 그리고 AbstractFactory 프로토콜을 정의하고, CircleFactory와 SquareFactory 클래스가 이를 채택하며, createShape() 메서드를 구현합니다.

사용 예시:

let circleFactory: AbstractFactory = CircleFactory()
let circle = circleFactory.createShape()
circle.draw()

let squareFactory: AbstractFactory = SquareFactory()
let square = squareFactory.createShape()
square.draw()

위의 예시에서는 AbstractFactory 프로토콜을 활용하여 CircleFactory SquareFactory 생성합니다. 그리고 createShape() 메서드를 호출하여 각각의 팩토리에서 원하는 도형을 생성하고, draw() 메서드를 호출하여 도형을 그립니다.

728x90
반응형