PDA

View Full Version : کلاس های نوع Interface چه تفاوتی با انواع دیگر کلاس یعنی ENTITY , CONTROL دارند؟



amirjalili
شنبه 19 اردیبهشت 1388, 16:57 عصر
با سلام خدمت دوستان محترم..
من مفهوم کلاس های نوع Interface یا interface class ها رو متوجه نشدم..
از اونجایی که برای ایجاد دیاگرام های کلاس دانستن انواع کلاس ها یعنی entity , interface و control ضروری به نظر میاد لطفا بنده رو راهنمایی بفرمایید..
البته در این لینک http://barnamenevis.org/forum/showthread.php?t=72561 بحث های خوبی شده بود اما من فقط یه مثال میخوام در مورد این کلاس ها..
ببینید مثلا میگن کلاس های interface کلاس هایی هستند که با actor ها در ارتباطند..
مثلا آیا کلاس login یک کلاس Interface هست؟
یا میگن کلاس entity میتونه یک دانشجو در سیستم انتخاب واحد باشه.

یک مثال ساده فکر کنم بتونه ابهام موجود رو بر طرف کنه.

باتشکر از همه دوستان..
ممنون

cups_of_java
شنبه 19 اردیبهشت 1388, 23:45 عصر
از اونجایی که برای ایجاد دیاگرام های کلاس دانستن انواع کلاس ها یعنی entity , interface و control ضروری به نظر میاد لطفا بنده رو راهنمایی بفرمایید..[/quote]

به طور کلی این دید می گه: کلاس های مدل تحلیل خودتون رو در سه نوع ببینید.
1. کلاس هایی که حاوی اطلاعات سیستم شما هستند (Entity)ها!
2. کلاس هایی که منطق اجرایی سیستم شما رو (سناریوها) انجام میدن (control)ها
3. کلاس هایی که واسط ارتباط actorها با سیستم هستند (یعنی ورودی و خروجی سیستم رو نمایش می دن. (interface)ها
این دید می تونه مشکلات و انومالی هایی رو در مدل درست کنه ( که آقای حسینی به یک مورد در همون لینکی که دادید اشاره کرده اند) تزریق چنین تقسیم بندی ای به مدل کلاس ها همیشه مفید و کارا نیست و بیشتر یک دید صنعتی برای طراحی نرم افزار های اطلاعاتی هست!

به کار گرفتن این دید بستگی به روشی که استفاده می کنید داره! این دید در RUP و چند روش دیگه استفاده می شه و برای وصل کردن use case ها به مدل های تحلیل و طراحی شی گرا هستش که یه ترتیبی به تشخیص کلاس ها می ده و سعی می کنه همه کلاس های تحلیل رو به سه بخش مفهومی تقسیم کنه! اما به طور کلی نیازی به این دید نیست. شما می تونین کلاس هاتون رو بدون این تقسیم بندی و با استفاده از دانش تحلیل و طراحی شی گرا (دانستن اصول شی گرایی، الگوهای تحلیل و طراحی شی گرا و ...) به طور عمومی تری در بیارین و کامل کنین.



ببینید مثلا میگن کلاس های interface کلاس هایی هستند که با actor ها در ارتباطند..
مثلا آیا کلاس login یک کلاس Interface هست؟

اگه معرفه فرم login باشه، می تونه از نوع Interface باشه چون وسیله ای هست برای ارتباط یک actor با سیستم اما اگه منطق login تو اون کلاس باشه، کلاس از نوع control می تونه باشه.