PDA

View Full Version : فرق moudule و class



azam2005
پنج شنبه 25 خرداد 1385, 12:46 عصر
فرق moudule و class چه از لحاظ معماری پیاده سازی و برنامه نویسی چیست

reza_rad
پنج شنبه 25 خرداد 1385, 13:12 عصر
فرق که بسیار است...
اما فرق اساسی:
یک ماژول مجموعه ای است از توابع که به شما امکان استفاده از این توابع را بصورت کتابخانه ای میده. یعنی در واقع یک Class Library است.
اما یک کلاس یک موجودیت هست که شامل یک سری خصوصیات (Property ) و متدها و همچنین رویدادها (Event ) است.
در واقع در شی گرایی شما کلیه ی کارهای مربوط به یک شی را توسط خصوصیات و متدها و رویدادهای آن شی انجام میدین. اما در برنامه نویسی ماژوله شما کلیه کارها را توسط یک سری تابع به تنهایی باید انجام دهید.

و بسیاری فرق دیگه...

پیشنهاد می کنم یک کتاب OOP تهیه کنید و حتما مطالعه کنید.

nazaninam
پنج شنبه 25 خرداد 1385, 18:29 عصر
یک فرق مهم که بی توجهی به اون ممکنه شمارو بعد ها مخصوصا بعد از آپلود سایت دچار مشکل کنه اینه:
ماژول حالت public و به اشتراک گذاشته شده داره یعنی مثلا هر متغیری که داخل یک ماژول تعریف شه در کل برنامه و بین تمام کاربران که از سایت استفاده میکنن یکسان هست و اگر یک نفر مقدار داخل این متغیر رو عوض کنه برای همه عوض میشه
در صورتی که در کلاس اینجور نیست و هر متغیر که تعریف میکنید در صورتی که public shared نباشه برای هر کاربر یک نمونه جدید از اون شی داخل کلاس خواهیم داشت
این تفاوت ممکنه روی کامپوتر local شما زیاد به چشم نیاد ولی وقتی روی اینترنت چندین کاربر همزمان وارد سایتتون شدند متوجه تفاوت خواهید شد

titbasoft
جمعه 26 خرداد 1385, 10:23 صبح
در واقع یک Module یک Class است با شرایط زیر:
1) به صورت NotInheritable تعریف شده
2) تمامی member های اون به صورت Shared تعریف شده اند

نتیجه این Module :


Public Module MyModule1
Public a As String
Private Const b As String = "x"
Property c() As String
Get
End Get
Set(ByVal Value As String)
End Set
End Property
Sub d()
End Sub
End Module

در حقیقت به چنین چیزی تبدیل میشه:


<StandardModule> _
Public NotInheritable Class MyModule1
' Methods
Shared Sub New()
Public Shared Sub d()
' Properties
Public Shared Property c As String
' Fields
Public Shared a As String
Private Const b As String = "x"
End Class