تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 2 از 2

نام تاپيک: data encapsulation و abstraction چطور در c#.net پشتیبانی میشوند؟

  1. #1
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Dec 2008
    پست ها
    335

    پيش فرض data encapsulation و abstraction چطور در c#.net پشتیبانی میشوند؟

    با سلام. اگر توضیح بدین و راهنمایی بفرمایین ممنون میشم.

  2. #2
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    Encapsulation
    از مبانی برنامه نویسی OOP و به معنی مخفی سازی و لفافه کردن اطلاعات و مکانیزم داخلی است.

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

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

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

    این مفهوم Encapsulation از مبانی OOP است.
    اینکه ساختمان داده ای و پردازشی داخلی یک شی باید از دیگران مخفی و دور بماند و در جعبه سایه و لفافه ای پیچیده شود، تا تغییرات سیستم داخلی روی بقیه کد اثر نگذارد.

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

    ساده ترین و قوی ترین کلمه برای پیاده سازی Encapsulation در #C و VB.Net کلمه ساده private است!!! (و سایر کلمات چهارگانه حوزه دید)
    که در کنار class و struct معنی میدهد.
    (((
    شاید کلمه ساده و پیش پا افتاده ای بنظر برسد، ولی تفکر صحیح و در نتیجه طراحی منطقی و بجا قدرت نهفته Encapsulation است که اگر صحیح انجام شود باید جلوی خیلی از تغییرات آبشاری کدها را بگیرید و با تغییر یک جزء نیازی به اعمال تغییرات وسیع سلسه وار در برنامه نباشد


    البته میتوان درنهایت Encapsulation را در #C و VB.Net با چندریختگی interface در هم آمیخت و به زیبایی به حداکثر Encapsulation دست یافت...
    )))


    Abstraction
    از زیر مفاهیم یکی از دیگر از اصول OOP به نام Inheritance یا همان وراثت است.
    اجزاء (کلاس/متد) مجرد انتظاعی هستند که قابل نمونه سازی/استفاده نبوده و فقط قابل وراثت/بازتعریف در کلاسهای مشتق برای تکمیل در رده های بالاتر هستند.
    در #C یک کلاس یا متد انتظاعی با کدی شبیه این قابل تعریف است ...
    بدیهی است کلاسی که یک متد انتظاعی داشته باشد باید خودش هم انتظاعی باشد ولی برعکس ان اجباری ندارد ...
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    شب خوش و موفق باشید.
    Last edited by _H2_; 15-04-2012 at 00:32.

  3. 5 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •