PDA

View Full Version : تفاوت برنامه نویسی شی گرا با برنامه نویسی لایه ای



negar.rafie
یک شنبه 17 اردیبهشت 1391, 19:14 عصر
سلام دوستان

من تو این موضوع یکم گیج شدم
ایا نحوه ی برنامه نویسی این دو با فرق دارد یا هردو اینها یکی هستند؟

mas'oud
یک شنبه 17 اردیبهشت 1391, 20:27 عصر
سلام دوست عزیز!

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

اما برنامه نویسی لایه ای روشی ابداعی توسط خود برنامه نویسان هست که میان با استفاده از همون قابلیت شئ گرایی و ایجاد کلاس، برنامه را به لایه های مجزا تقسیم کرده که هر لایه وظیفه خود را به طور جداگانه انجام می دهند و در یک دید بسیار کلی تمام لایه های برنامه تشکیل دهنده ی یک برنامه مثلا با نام x هستن.

خیلی محاوره بخوام بگم برنامه نویسی لایه ای مثل میدون میوه تره بار میمونه که قسمت میوه اش یه جاست، قسمت تره بار و سبزیش یه جا دیگه و ... که هیچ کدام در کار یکدیگر مداخله نمی کنند و کار خودشونو انجام میدن اما در یک نگاه کلی همه با هم تشکیل یک میدان میوه و تره بار رو میدن که نبود هر یک از این قسمتها یعنی اینکه میدون میوه میدون کاملی نیست و کمبود داره!!!!
ضمن اینکه هر غرفه میتونه بیانگر یک کلاس باشه و مجموعه ای از چند کلاس میشن یک لایه (در مواردی هم حتی یک کلاس خودش یک لایه مجزا هست).

مثلا :
غرفه هندوانه و طالبی >> کلاس a
غرفه مرکبات (پرتقال، لیمو و نارنگی) >> کلاس b
غرفه میوه های مجلسی >> کلاس c
-----------
سه کلاس بالا در کنار هم تشکیل لایه ی میوه را می دهند!

و

غرفه سبزیجات >> کلاس d
غرفه سیب زمینی و پیاز و گوجه >> کلاس e
غرفه بادمجون و کدو و خیار >> کلاس f
------------
این سه کلاس هم تشکیل لایه تره بار رو میدن!!

اینکه میگن برنامه نویسی شئ گرا یعنی پیاده سازی دنیای واقعی در مدل برنامه نویسی تقریبا تو این مثال مشهود بود! حتی میوه فروشان ما هم لایه ای و شئ گرا کار میکنن و خبر ندارن!

خودمونیم عجب مثالی شد!!! احتمالا ماکروسافت میره تو کارش!!!!! :قهقهه: :گیج: :لبخند: :چشمک:

امیدوارم مفهوم رو رسونده باشم!

r0ot$harp
یک شنبه 17 اردیبهشت 1391, 21:03 عصر
دوست عزیز توضیحات رو دوست عزیزم در بالا گفتن.

در برنامه های تجاری استفاده از معماری چندلایه بسیار با ارزش و همینطور پرهزینه.

شما با ایجاد لایه های متفاوت، انجام کارهارو در لایه های مختلف انجام می دین.

بیشترین نوع استفاده از معماری چندلایه، معماری 3 لایه هست.

Business Logic Layer
Data Access Layer
User Interface

در هرکدام از لایه های بالا کارهای متناسب با لایه خود انجام می شه.
به طور مثال شما به هیچ عنوان در لایه UI کاری به دیتا و دیتابیس ندارین. در لایه BLL هیچ کاری به دیتا و دیتابیس ندارین. تنها در لایه DAL تمامی فعالیت های دیتابیسی انجام می شود.
اما من همیشه از 4 لایه استفاده می کنم. یک لایه اضافه به نام Object Mapping به عنوان لایه ای برای در برگیرنده Field ها , Property ها و ...

در صورتی که نیاز به اطلاعات بیشتر دارین می تونید به سایت زیر مراجعه کنید.


http://www.codeproject.com/Articles/36847/Three-Layer-Architecture-in-C-NET

مطالب رو خیلی خلاصه گفتم.

باتشکر احسان