علی قلعه بان
دانشجوی دکتری فناوری اطلاعات

تفاوت ماژول و کلاس در دات نت چیست ؟ مقایسه Module و Class

تفاوت کلاس و ماژول در برنامه نویسی دات نت چیست؟ ابتدا بگذارید تعریفی خلاصه از کلاس و ماژول داشته باشیم , کلاس ها در واقع به نقشه ساخت object ها اطلاق میشود هر چیزی در برنامه نویسی شی گرا object میباشد و هر object دارای خصیصه هایست که در درون این کلاس برای آن تعریف شده است بطور مثال کلاس انسان را اگر در نظر بگیریم همه انسان ها خصیصه هایی از قبیل قد ,وزن , رنگ چشم ,رنگ مو و.... دارند و وقتی شما میخاهید انسان جدیدی در برنامه تعریف کنید دیگر نیازبه تعریف یک یک انسان ها نبوده و کافیست یکبار کلاس مدنظرش را ساخته و سپس یک انسان تعریف کنید و خصیصه های مدنظر را از کلاس به ان اعمال کنید .

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

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

وب سایت توسینسو

1- یکی از اصلی ترین تفاوت های موجود بین ماژول و کلاس این میباشد که کلاس را میتوان به عنوان Object یا شی تعریف کرده و از آن استفاده نمود ولی این موضوع در مورد ماژول منتفی میباشد بخاطر اینکه در هر برنامه صرفا یک کپی خاص از ماژول موجود وجود داشته و در صورتی که در بخشی از برنامه مقدار متغیری در ماژول تغییر کند در باقی بخش ها نیز مقدار ان متغیر تغییر خواهد یافت ولی در کلاس این موضوع متفاوت است و هر محتوی هر متغیری در هر بخشی که object کلاس مدنظر استفاده میکند بصورت جدا در دسترس میباشد .

2-یکی دیگر از تفاوت های اصلی بین کلاس و ماژول نحوه تعریف و دسترسی اعضای موجود در آنها میباشد بطور مثال وقتی شما عضوی را در کلاس تعریف میکنید این اعضا صرفا وجودشان محدود به کلاس مربوطه بوده و تا زمانی که object در دسترس باشد ان نیز در دسترس خواهد و با بین رفتن object اعضای تعریف شده نیز از بین خواهند رفت ولی در ماژول این موضوع بدین صورت است که از تمامی بخش های برنامه و در هر بخشی از کد قابل دسترسی خواهد بود این بدین معنی است که متغیرهای تعریف شده در درون ماژول در تمامی جاها قابل دسترسی و کاربردی تر از متغیرها و یا اعضای کلاس میباشند و بر خلاف کلاس که با از بین رفتن object اعضا نیز از بین میروند در ماژول تا وجود برنامه ماژول نیز با متغیرهایش به کار خود ادامه خواهد داد .

3- ماژول خاصیت ارث بری ندارد ولی کلاس این خاصیت را دارا میباشد .

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

Dim ali As New Button  

در این بخش میتوانید به خصیصه های شی تعریف شده مقدار دهی کنید بطور مثال دکمه دارای خصیصه نام و عرض و طول هست که شما میتوانید این مقادیر را اینجا تعریف کنید

ali.Text = "ali"

و در بخش پایانی با استفاده از دستور زیر شی مورد نظر شما با ارث گیری از کلاس اصلی خود و با خصیصه های وارد شده توسط شما بر روی فرم ایجاد میگردد

Me.Controls.Add(ali)

امیدوارم که مورد استفاده دوستان قرارگرفته باشد در صورت مبهم بودن هر کدام از مطلب کامنت بگذارید جواب میدم

نویسنده : علی قلعه بان - دانشجوی دکتری ,محقق و متخصص فناوری اطلاعات


نظرات