# Native Code > برنامه نویسی با C > برنامه نویسی با زبان C و ++C > گفتگو: تفاوت ساخت یافته و شی گرا

## Keyhan Clever

ببینین من تازه میخوام وارد بحث شی گرایی بشم .
میشه یه کم ساده تر بهم توضیح بدین شی گرا چه تفاوتی با ساخت یافته داره ؟

----------


## cups_of_java

در مدل ساخت یافته شما داده ها رو جدا تشخیص می دی و بعد عملیاتی که لازم داری رو هم جدا تشخیص می دی. برنامت می شه تعداد زیاذی رکورد (یا structure) به علاوه تعداد زیادی تابع. هر تابعی می تونه به هر داده ای دست بزنه و ...

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

نمی دونم چقدر ساده توضیح دادم!؟

----------


## mortezamsp

باسلام.
سه وي‍گي اصلي برنامه هاي شئ گرا عبارتد از كپسوله سازي، ارث بري ، و چندريختي.
كپسوله سازي يعني در مدل سازي مسائل پيچيده با توابع و متغيرهاي زياد ، ازكلاس ها براي دسته بندي توابع و متغيرها استفاد كنيم ، بطوريكه هر كلاس بتونه از آشفتگي محاسبات خارج كلاس در امان باشه و فقط با يك سري رابط ها با بيرون از كلاس ارتباط دذاشته باشه.
ارث بري چيزي معادل منطق رده ها هستش.كه اونجا اشياء بنا بر شباهت ها و سير تكاملي شون دسته بندي ميشن.
چندريختي هم يعني اينكه يك قابل مشترك در كلاس ها بسازيم براي راحت تر كردن كد نويسي.البته من در مورد چند ريختي زياد بلد نيستم متاسفانه!


بريد اينجا بيشتر هستش:
مفاهيم شئ گرايي

----------


## h_qorbani

> بريد اينجا بيشتر هستش:
> مفاهيم شئ گرايي


رفتیم،اما خبری نبود

----------


## Salar Ashgi

برنامه نویسی ساخت یافته در واقع یعنی : همین ساختارهای کنترلی ، توابع ، ساختارهای داده ای ،
اشاره گر و ...
برنامه نویسی شی گراء : میشه گفت اصول برنامه نویسی ساخت یافته + اصول شی گرایی
به بیان ساده تر : بعنوان مثال شما یه دانشجو رو فرض کنید ، بجای اینکه بیایم در برنامه نویسی ساخت یافته خاصیت های و ویژگی های این شخص دانشجو رو جدا جدا تعریف کنیم ، بعنوان مثال یه تابع بنویسیم معدلش رو حساب کنه ، یه Struct تعریف کنیم واسه نگه داشتن مشخصات فردی ، یه تابع بنویسیم تعداد واحدهای پاس شده رو حساب کنه ، یه تابع بنویسیم لیست دروس پاس شده رو برگردونه و ... میایم در برنامه نویسی شی گراء ، *شی دانشجو* رو در نظر میگیریم ، که واسه خودش یکسری توابع و اعضای داده ای رو داره ، که خیلی راحت میتونین به هریک از این صفت ها و ویژگی ها دسترسی پیدا کنید ./
===============
مزایای برنامه نویسی شی گراء :

توسعه سریع برنامهمطابقت کامل با تمام اصول مهندسی نرم افزارمثلا شما وقتی میخواین اطلاعات 100 دانشجو رو دخیره کنین ، باید برای هر کدوم یه بار اون متود ها ،استراکت ها و ... فراخوانی کنین ، در صورتیکه تو برنامه نویسی شی گراء ما میایم یه شی از کلاس دانشجو درست میکنیم و در نتیجه مدیریت صفت ها و ویژگی های شی دانشجو بسیار راحت خواهد بود .در کل در برنامه نویسی ، وقتی داریم روی یه موجودیت(شی) بحث میکنیم که واسه خودش یکسری ویژگی هایی داره ؛ از جمله : همین شخص دانشجو یا بشکل عمومی تر یه انسان ، ماشین ، صندلی ، یه شکل هندسی و هر موجودیتی که بشه واسش ویژگی هایی قائل شد .
سعی کردم بصورت ساده و مفید توضیح دهم ، باز اگه سوالی بود ، حتما بپرسید ./
به لینک زیر هم نگاهی بکنید :
http://fa.wikipedia.org/wiki/%D8%A8%...AF%D8%B1%D8%A7

موفق باشید ./

----------

