نمایش نتایج 1 تا 1 از 1

نام تاپیک: نکاتی راجب Abstract و Interface

  1. #1
    کاربر دائمی آواتار Yousha
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران - تهران
    پست
    515

    Post نکاتی راجب Abstract و Interface

    - اینکه هر دو در پیاده سازی الگوی polymorphism استفاده می شن.
    - هر دو برای پیروی از یک شِماتیک و اسکلت ثابت هستند.
    - هردو گزینه خوبی برای استاندارد سازی API داخلی هستن.
    - هردو بهترین گزینه برای کار تیمی/گروهی هستن.
    - هر دو قوانین استفاده از کلاس رو برای توسعه دهنده اجبار می کنن.
    - کلاس Abstract در واقع ترکیبی از Interface و کلاس هستش اما Interface یک کلاس مجازی Abstract هستش.
    - متدهای کلاس Abstract میتونن حاوی کد/محتوا باشن تا یک عملیات رو برای همه کلاس های مصرف کننده فراهم کنن. اما Interface نمی تونه.
    - کلاس Abstract قابلیت instantiation یا همون new شدن رو نداره. فقط میشه inheritance/extend کردش.
    - یک کلاس فقط از یک کلاس Abstract می تونه inheritance بشه. (قدرتمند/extend بشه)
    - یک کلاس(از هر نوعی) میتونه از یک کلاس extend بشه و از صدهزار interface مختلف implement بگیره.
    - یک Interface می تونه از چندین Interface مختلف extend بشه.
    - اینترفیس معمولاً در طراحی Listener ها، Callback ها و سازگارسازی کلاس های غیرمرتبط استفاده داره، اما abstract در همه جا.
    - کلاس Abstract میتونه متد private داشته باشه(غیر abstract)، اما Interface نمی تونه.
    - کلاس Abstract میتونه فیلد، const و متد داشته باشه. اما Interface فقط می تونه متد(خالی) و const داشته باشه.
    - یک کلاس معمولی(concrete) باید همه متدهای اینترفیس رو implement کنه، اما در کلاس Abstract اجباری نیست.
    - سطوح دسترسی متدها و فیلدها در Abstract میتونه public, private, protected باشه. اما در Interface فقط public میتونه باشه.
    نکته: از PHP 5.3 به بعد مجاز به استفاده از static abstract هستید.
    نکته 2: هنگام طراحی کلاسهای utility یا full static، استفاده از کلاس Abstract گزینه مناسبیه.
    نکته 3: معمولاً هنگام طراحی متدهای خالی(stubs)، استفاده از Interface گزینه مناسب تری نسبت به Abstract هست.

    منبع: https://forum.iranphp.org/showthread.php?tid=11861
    آخرین ویرایش به وسیله Yousha : چهارشنبه 19 مهر 1396 در 17:31 عصر

تاپیک های مشابه

  1. فرق Interface با abstract class
    نوشته شده توسط archi در بخش C#‎‎
    پاسخ: 11
    آخرین پست: پنج شنبه 01 تیر 1396, 21:57 عصر
  2. دلیل استفاده از Interface و Abstract
    نوشته شده توسط syst3m_f4ult در بخش Java SE : نگارش استاندارد جاوا
    پاسخ: 15
    آخرین پست: چهارشنبه 06 بهمن 1395, 16:37 عصر
  3. کلاس Abstract و Interface
    نوشته شده توسط haamidd در بخش C#‎‎
    پاسخ: 3
    آخرین پست: چهارشنبه 15 مهر 1394, 10:08 صبح
  4. آموزش: تفاوت Abstract و Interface.
    نوشته شده توسط Yousha در بخش PHP
    پاسخ: 1
    آخرین پست: شنبه 29 بهمن 1390, 16:08 عصر
  5. abstract class یا interface
    نوشته شده توسط Peyman_Ranjbar در بخش C#‎‎
    پاسخ: 9
    آخرین پست: جمعه 24 شهریور 1385, 05:26 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •