مفهوم Factory (کارخانه)، دقیقا از معنی لغوی آن مشخص است. کارخانه مکانی است که در آن کالاها و محصولاتی تولید می شود. و در بحث الگوهای طراحی، یک Factory کلاسی است که نمونه های از کلاس های دیگر را با توجه به پارامترهای که برای آن ارسال می شود، ایجاد می کند.
برای ایجاد یک ذهنیت در خودتان می توانید تصور کنید که ما یک فروشگاه پوشاک داریم هر وقت که فروشگاه به لباس خاصی نیاز داشته باشید. اسامی آن را به تولید کننده(Factory) ارسال می کند و تولید کننده با توجه به اسامی ارسال شده آن لباس ها را تولید کرده و به فروشگاه ارسال می کند. در این مثال تولید کننده همان کلاس Factory ما است که با توجه به پارامترهای ارسال شده (لیست پوشاک مورد نظر فروشگاه) لباس مورد نظر (شی موزد نظر) را تولید می کند و به مشتری ارسال می کند.
نمونه کد اول در VB.NET |
‘Class Shirt Public Class Shirt Protected _Color As String Protected _Size As String
Public ReadOnly Property Color() Get Return _Color End Get End Property
Public ReadOnly Property Size() Get Return _Size End Get End Property End Class |
‘Class Shrit_A Public Class Shrit_A Inherits Shirt Public Sub New() Me._Color = “Blue” Me._Size = “XL” End Sub End Class |
‘Class Shrit_B Public Class Shirt_B Inherits Shirt Public Sub New() Me._Color = “Red” Me._Size = “M”
End Sub End Class |
‘Class Factory Public Class Factory Public Function GetShirt(ByVal Type As String) As Shirt
If Type = “A” Then Return New Shrit_A() Else Return New Shirt_B() End If
End Function End Class |
‘Class Store Public Class Store Private _OrderType As String Public Property OrderType() Get Return _OrderType End Get Set(ByVal value) _OrderType = value End Set End Property Public Function Order() As Shirt Dim Ins1 As New Factory Dim Ins2 As Shirt = Ins1.GetShirt(_OrderType) Return Ins2 End Function End Class |
نحوه استفاده Private Sub Cmd_Order_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim Ins1 As New Store Dim INs2 As New Shirt Ins1.OrderType = “A” INs2 = Ins1.Order() End Sub |
سلام مطالب تون خيلي جالبه ، در مورد الگوهاي ديگر اگه ممكنه بنويسيد.ممنون