Simple Factory Pattern
シンプルなFactoryパターンは、Static Factory Methodと呼ばれ、あるクラスを定義して、ほかクラスのインスタンスを作成する。作成されたのインスタンスは一般的に共有な親クラスあるいはインタフェースがある。
参加者:
Factoryルート(Creator)
アブストラクトプロダクトルート(Product)
具体なプロダクトルート(Concrete Product)
日常の例(着物選択):
アブストラクトプロダクトクラス:着物
Public Interface ICoat Sub GetYourCoat() End Interface
具体のクラス:
Namespace SimpleFactory Public Class BusinessCoat Implements ICoat Public Sub GetYourCoat() Console.WriteLine("BusinessCoat") End Sub End Class
Public Class FashionCoat
Implements ICoat
Public Sub GetYourCoat()
Console.WriteLine("FashionCoat")
End Sub
End Class
End Namespace
Factoryクラス:
Namespace SimpleFactory Public Class Factory Public Function CreateCoat(styleName As String) As ICoat Select Case styleName.Trim().ToLower() Case "business" Return New BusinessCoat() Case "fashion" Return New FashionCoat() Case Else Throw New Exception("ほしい着物はない") End Select End Function End Class End Namespace
使用
Clientクラス:
Class Client Private Shared Sub Main(args As String()) Dim food As ICoat Try Dim factory As New Factory() Console.Write("FashionCoatがほしい" & vbTab) food = factory.CreateCoat("fashion") food.GetYourCoat() Catch ex As Exception Console.WriteLine(ex.Message) End Try End Sub End Class