[kotlin] 팩토리 메서드 패턴 적용하기

다음은 Kotlin에서 팩토리 메서드 패턴을 구현하는 간단한 예제입니다.

제품(Product) 인터페이스

interface Product {
    fun getDescription(): String
}

구체적인 제품(Concrete Product) 클래스

class ConcreteProductA: Product {
    override fun getDescription(): String {
        return "Concrete Product A"
    }
}

class ConcreteProductB: Product {
    override fun getDescription(): String {
        return "Concrete Product B"
    }
}

팩토리(Factory) 인터페이스

interface Factory {
    fun createProduct(): Product
}

구체적인 팩토리(Concrete Factory) 클래스

class ConcreteFactoryA: Factory {
    override fun createProduct(): Product {
        return ConcreteProductA()
    }
}

class ConcreteFactoryB: Factory {
    override fun createProduct(): Product {
        return ConcreteProductB()
    }
}

메인 함수에서 팩토리 패턴 활용

fun main() {
    val factoryA: Factory = ConcreteFactoryA()
    val productA: Product = factoryA.createProduct()
    println(productA.getDescription())  // 출력: Concrete Product A

    val factoryB: Factory = ConcreteFactoryB()
    val productB: Product = factoryB.createProduct()
    println(productB.getDescription())  // 출력: Concrete Product B
}

위의 예제를 통해 팩토리 메서드 패턴을 적용한 Kotlin 코드를 확인할 수 있습니다. 이러한 패턴을 사용하면 유연하고 확장 가능한 코드를 작성할 수 있으며, 객체 생성 관련 로직을 캡슐화하여 유지보수성을 높일 수 있습니다.

참고문헌: