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

نام تاپیک: تعدد کلاس ها و سوالی از مفاهیم ارث بری

  1. #1

    تعدد کلاس ها و سوالی از مفاهیم ارث بری

    سلام
    من سیستمی دارم که کاربران اون، در سطوح مختلفی از امکانات استفاده میکنن. مثلا کارمندان میتونن فایل جدید آپلود کنن یا قبلیا رو ویرایش کنن ولی کاربر نهایی فقط میتونه فایل رو دانلود کنه.
    تو کلاس دیاگرام یک کلاس general دارم که که انواع کاربران از اون ارث بری میکن، تو این شکل لیست گیری و دانلود متدهای کلاس فایل هستند.
    Name:  class.jpg
Views: 90
Size:  47.6 کیلوبایت
    و

    Name:  SubClass.jpg
Views: 92
Size:  25.5 کیلوبایت
    از نظر خودم این کار منطقیه ولی مسئله اینجاست که به ازای هر کلاس باید حداقل دو تا کلاس داشته باشیم و این کلاسها یکی دوتا نیستن برای همین تعداد کلاسها زیاد میشن.

    راهی هست که بشه از کلاسی ارث بری کرد ولی مثلا به یکی از متد ها دسترسی نداشت؟

  2. #2
    کاربر جدید
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    اهواز
    پست
    20

    نقل قول: تعدد کلاس ها و سوالی از مفاهیم ارث بری

    نقل قول نوشته شده توسط Arsham** مشاهده تاپیک
    سلام
    من سیستمی دارم که کاربران اون، در سطوح مختلفی از امکانات استفاده میکنن. مثلا کارمندان میتونن فایل جدید آپلود کنن یا قبلیا رو ویرایش کنن ولی کاربر نهایی فقط میتونه فایل رو دانلود کنه.
    تو کلاس دیاگرام یک کلاس general دارم که که انواع کاربران از اون ارث بری میکن، تو این شکل لیست گیری و دانلود متدهای کلاس فایل هستند.
    Name:  class.jpg
Views: 90
Size:  47.6 کیلوبایت
    و

    Name:  SubClass.jpg
Views: 92
Size:  25.5 کیلوبایت
    از نظر خودم این کار منطقیه ولی مسئله اینجاست که به ازای هر کلاس باید حداقل دو تا کلاس داشته باشیم و این کلاسها یکی دوتا نیستن برای همین تعداد کلاسها زیاد میشن.

    راهی هست که بشه از کلاسی ارث بری کرد ولی مثلا به یکی از متد ها دسترسی نداشت؟
    شما باید اون کلاس General رو به صورت Virtual بنویسین و بعد کلاسهای مشتق شده از اون کلاس هر کدوم اعضای داده ای خاص خودشون و متدهای خاص خودشون رو دارن که بوسیله دیگر کلاسها قابل مشاهده نمیباشند.

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

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