[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 코드를 확인할 수 있습니다. 이러한 패턴을 사용하면 유연하고 확장 가능한 코드를 작성할 수 있으며, 객체 생성 관련 로직을 캡슐화하여 유지보수성을 높일 수 있습니다.
참고문헌:
- https://refactoring.guru/design-patterns/factory-method
- https://www.baeldung.com/java-factory-pattern