VB.NET 디자인 패턴 - 1. 단순 팩토리 패턴 (Simple Factory Pattern)

2023. 4. 19. 14:00VB.NET/디자인 패턴

소프트웨어 개발에서 디자인 패턴은 반복적으로 발생하는 문제를 해결하기 위한 일련의 해결책을 말합니다. 디자인 패턴을 사용하면 소프트웨어 개발의 효율성과 유지보수성을 높일 수 있습니다. 이번 글에서는 VB.NET에서의 디자인 패턴 중 하나인 단순 팩토리 패턴(Simple Factory Pattern)에 대해서 알아보겠습니다.

 

단순 팩토리 패턴 (Simple Factory Pattern)

단순 팩토리 패턴은 객체를 생성하는 패턴 중 하나로, 생성자를 직접 호출하지 않고 객체를 생성하는 클래스를 만들어서 사용하는 방법입니다. 단순 팩토리 패턴은 팩토리 메서드 패턴(Factory Method Pattern)과 비슷하지만, 팩토리 메서드 패턴은 객체를 생성하는 과정을 서브 클래스에게 위임하는 반면에, 단순 팩토리 패턴은 객체 생성 과정을 중앙 집중화합니다.

단순 팩토리 패턴을 구현한 코드

Public Interface IProduct
    Function GetPrice() As Decimal
End Interface

Public Class ProductA
    Implements IProduct
    Public Function GetPrice() As Decimal Implements IProduct.GetPrice
        Return 100
    End Function
End Class

Public Class ProductB
    Implements IProduct
    Public Function GetPrice() As Decimal Implements IProduct.GetPrice
        Return 200
    End Function
End Class

Public Class ProductFactory
    Public Shared Function CreateProduct(productType As String) As IProduct
        Select Case productType
            Case "A"
                Return New ProductA()
            Case "B"
                Return New ProductB()
            Case Else
                Throw New ArgumentException("Invalid product type")
        End Select
    End Function
End Class

위 코드에서는 IProduct 인터페이스를 정의하고, ProductA와 ProductB 클래스가 IProduct 인터페이스를 구현하도록 만들었습니다. 그리고 ProductFactory 클래스를 만들어서 CreateProduct 메서드를 정의했습니다. 이 메서드는 productType 매개변수를 받아서, 해당하는 제품 객체를 생성해서 반환합니다. 예를 들어, ProductA 객체를 생성하려면 다음과 같은 코드를 사용할 수 있습니다.

Dim productA As IProduct = ProductFactory.CreateProduct("A")
Dim price As Decimal = productA.GetPrice() ' price = 100

이렇게 하면 ProductFactory 클래스에서 productType 매개변수가 "A"일 때 ProductA 객체를 생성해서 반환합니다. 따라서 price 변수에는 100이 저장됩니다.

단순 팩토리 패턴의 장단점

장점

  • 객체 생성 코드를 중앙 집중화해서 관리할 수 있습니다. 이렇게 하면 객체 생성 코드의 중복을 줄일 수 있습니다.
  • 객체 생성 방법을 변경하려면 단순 팩토리 클래스만 수정하면 됩니다. 따라서 유지보수성이 높아집니다.
    객체 생성 코드를 직접 작성하는 것보다 코드 가독성이 높아집니다.

단점

  • 단순 팩토리 패턴은 객체 생성을 중앙 집중화하므로, 팩토리 클래스가 매우 커질 수 있습니다. 따라서 팩토리 클래스를 분리하거나, 객체 생성 코드를 서브 클래스에게 위임하는 팩토리 메서드 패턴을 사용하는 것이 좋을 수 있습니다.
  • 단순 팩토리 패턴은 객체 생성을 위한 인터페이스나 추상 클래스를 제공하지 않으므로, 유연성이 떨어질 수 있습니다.

단순 팩토리 패턴을 사용할 때 주의사항

  • 객체 생성 과정이 복잡하거나 변경이 빈번하게 일어날 경우에는 팩토리 메서드 패턴을 사용하는 것이 좋습니다.
  • 단순 팩토리 클래스의 크기가 커지지 않도록 주의해야 합니다.
  • 객체 생성 코드를 직접 작성하는 것보다 단순 팩토리 클래스를 사용하는 것이 코드 가독성을 높일 수 있습니다.

마치며...

이상으로 VB.NET에서의 디자인 패턴 중 하나인 단순 팩토리 패턴에 대해서 알아보았습니다. 디자인 패턴은 소프트웨어 개발에서 중요한 역할을 합니다. 디자인 패턴을 잘 활용하면 소프트웨어 개발의 효율성과 유지보수성을 높일 수 있습니다.

 

관련글 : 2023.04.19 - [VB.NET/디자인 패턴] - VB.NET에서의 디자인 패턴

 

VB.NET에서의 디자인 패턴

소프트웨어 개발은 그저 코드를 작성하는 것이 아니라, 잘 구조화된 코드를 작성해야합니다. 디자인 패턴은 소프트웨어 아키텍처와 구조를 구성하는 데 사용되는 효율적인 방법입니다. 이번 블

chakhani.tistory.com

 

반응형