بایگانی

بایگانی آذر

مقدمه شروع به کار وبلاک

خاستم بر باد بنویسم، آنچه رانمی دانم

 

اندیشدم …

 

بر باد نشستم…

Categories: غیرفنی Tags:

Factory Patterns (قسمت اول)

مفهوم 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

حقیقت

سر سپردن به حقیقت یعنی اینکه «من به هیچ سنتی تعلق نخواهم داشت. فقط جست و جو خواهم کرد. فقط زمان باور خواهم کرد که خود بدانم نه قبل از آن»

مسئله، رفتن به بهشت نیست. آموختن هنر در بهشت بودن است در هر جا که باشی. باید عصاره ی لحظه ی اکنون را برگرفت.

فقط عصیانگران می دانند زندگی چست و خدا چیست. زیرا خدا هسته زندگی است. در حقیقت، خدا و زندگی مترداف هم اند.

اشو

Categories: غیرفنی Tags:

Singleton Pattern

Singleton Pattern:

اشیاء زیادی وجود دارند که ما فقط و فقط به یک نمونه آن از اشیاء نیاز داریم. برای مثال سیستم شما فقط می تواند فقط یک نمونه از پورت COM1 را داشته باشید یا در اداره شما فقط می تواند یک مدیر عامل وجود داشته باشد و …. حال فرض کنید که شما کلاسی دارید که فقط باید یک نمونه از آن ایجاد شود. شما این مسئله را چگونه حل می کنید؟

Singleton Pattern، الگوی است که برای اینکار ایجاد شده است. یعنی اطمینان از اینکه از کلاس ما فقط یک نمونه ایجاد شده است. این الگو برای این به کار می رود تا ایجاد نمونه از یک کلاس را محدود کند.

 

نحوه پیادسازی:

آسانترین راه برای ایجاد کلاسی که فقط می تواند یک نمونه از آن ایجاد شود استفاده از یک متغییر استاتیک در داخل کلاس می باشد. اولین نمونه ای که از این کلاس ایجاد می شود ما متغییر استاتیک را مقدار True می دهیم و در سایر دفعات این متغییر استاتیک در سازنده تست می شود  اگر مقدارش False باشد یک نمونه از شی ایجاد خواهد شد در غیر این صورت نمونه جدیدی از آن شی ایجاد نخواهد شد.

 

نمونه کد اول در VB.NET

تعریف کلاس

Public Class Singleton

    Private Shared instance_flag As Boolean = False

    Private _Id As Integer

 

    Public Property Id() As Integer

        Get

            Return _Id

        End Get

        Set(ByVal value As Integer)

            _Id = value

        End Set

    End Property

 

    Public Shared Function GetInstance() As Singleton

        If (Not instance_flag) Then

            instance_flag = True

            Return New Singleton

        Else

            Return Nothing

        End If

    End Function

 

End Class

نحوه استفاده

        Dim Ins1, Ins2 As Singleton

        Ins1 = Singleton.GetInstance

        Ins2 = Singleton.GetInstance

        Ins1.Id = 200

 

        Console.WriteLine(Ins1.Id)

        Console.WriteLine(Ins2.Id)

 

        Ins2.Id = 123

        Console.WriteLine(Ins1.Id)

        Console.WriteLine(Ins2.Id)

 

        Console.ReadKey()

خروجی: هنگام استفاده از کلاس بالا به شیوه ای که نوشته شد نمونه دوم از آن هیچ وقت ایجاد نخواهد شد پس تمام عملیاتی که نمونه دوم می خواهد انجام دهد با خطا همراه خواهد بود. برای حل این مشکل می توانیم به صورت زیر عمل کنیم.

 

 

نمونه کد دوم در VB.NET

تعریف کلاس

Public Class Singleton

    Shared m_instance As Singleton

    Private _Id As String

    Public Property Id() As Integer

        Get

            Return _Id

        End Get

        Set(ByVal value As Integer)

            _Id = value

        End Set

    End Property

    Public Shared Function GetInstance() As Singleton

        If (m_instance Is Nothing) Then

            m_instance = New Singleton()

        End If

        Return (m_instance)

    End Function

 

    Private Sub New()

    End Sub

End Class

نحوه استفاده

        Dim Ins1, Ins2 As Singleton

        Ins1 = Singleton.GetInstance

        Ins2 = Singleton.GetInstance

        Ins1.Id = 200

 

        Console.WriteLine(Ins1.Id)

        Console.WriteLine(Ins2.Id)

 

        Ins2.Id = 123

        Console.WriteLine(Ins1.Id)

        Console.WriteLine(Ins2.Id)

 

        Console.ReadKey()

خروجی:

       

۲۰۰

۲۰۰

۱۲۳

۱۲۳

 

برای من …

و تو تنهاترین «من» بودی.

و تو نزدیگ ترین «من» بودی.

و تو رساترین من بودی، ای «من» سحرگاهی، پنجرهای بر خیرگی دنیاها سر انگیز.

 

نگاه مرد مسافر به روی میز افتاد:

«چه سیب های قشنگی!

حیات نئشه تنهایی است.»

و میزبان پرسید:

قشنگ یعنی چه؟

- قشنگ یعنی تعبیر عاشقانه اشکال

و عشق، تنها عشق

ترا به گرمی یک سیب می کند مانوس.

و عشق، تنها عشق

مرا به وسعت اندوه زندگی ها برد،

مرا رساند به امکان یک پرنده شدن.

Categories: غیرفنی Tags: