مدل-نما-کنترلگر (MVC)یک الگوی طراحی پایه است که منطق رابط کاربری را از منطق کسب و کار جدا میکند. الگوی مدل-نما-کنترلگر (MVC) روشی برای تقسیم یک برنامه به سه مؤلفه متمایز است: مدل، نما و کنترلگر.
چارچوب MVC با استفاده از مدلسازی UML
این مدل-نما-کنترلگر را میتوان به بهترین شکل بصری با استفاده از تحلیل استحکام در یادداشتبرداری استاندارد UML توصیف کرد، که اولین بار توسط ایوار جیکوبسون در کتاب برنده جایزهاش با عنوان مهندسی نرمافزار شیءگرا پیشنهاد شد (به مراجع زیر مراجعه کنید) و توسط داگ روزنبرگ و دیگران در کتاب مدلسازی شیءگرا مبتنی بر مورد استفاده توضیح داده شده است.
در اینجا یک نمودار توالی ساده و فرضی برای MVC وجود دارد. آنچه در نمودار بالا میبینید این است که یک کاربر وب یک پرسش را آغاز میکند و یک رویداد تولید میکند که توسط کنترلگر پردازش میشود تا اطلاعات مورد نیاز را از مدل دریافت کند، اطلاعات را اعتبارسنجی کند و مجموعه نتایج را به نما بازگرداند.
اشیاء موجودیت(مدل) چیزی جز اطلاعات یا دادههایی نیستند که اشیاء مرزی شما به دنبال آن هستند. اینها میتوانند جداول پایگاه داده، فایلهای اکسل، یا جلسات «زودگذر» یا دادههای کش شده یا چیزهایی از این قبیل باشند.
- اشیایی را توصیف کنید که در طول زمان وجود دارند و عمدتاً به وضعیت پایدار مربوط میشوند.
- معمولاً اشیاء از مدل دامنه
- چیزهایی که باید پیگیری و ذخیره کنیم
اشیاء مرزی (نما) اشیائی هستند که بازیگران (مانند کاربران) در سیستم نرمافزاری شما با آنها ارتباط برقرار میکنند. این اشیاء میتوانند هر پنجره، صفحه، دیالوگ و منو، یا سایر رابطهای کاربری در سیستم شما باشند. شما میتوانید به راحتی آنها را هنگام تحلیل موارد استفاده شناسایی کنید.
- اتصالات بین سیستم و محیطی که ارتباط برقرار میکنند را توصیف کنید.
- توسط بازیگران هنگام ارتباط با سیستم استفاده میشود
- فقط اشیاء موجودیت میتوانند رویدادها را آغاز کنند
- (معمولاً عناصر اصلی رابط کاربری، مانند صفحات)
اشیاء کنترل (کنترلگرها) اشیاء کسب و کار یا خدمات وب کسب و کار شما هستند. اینجا جایی است که شما قوانین کسب و کار را که برای فیلتر کردن دادههایی که باید به کاربر ارائه شود، استفاده میشود، ثبت میکنید، آنچه او درخواست میکند. بنابراین کنترلگر در واقع منطق کسب و کار و تبدیل دادهها را کنترل میکند.
- رفتار در یک مورد استفاده خاص را توصیف کنید.
- چسب بین اشیاء مرزی و اشیاء موجودیت
- قوانین و سیاستهای کسب و کار را ثبت کنید
- (توجه: معمولاً به عنوان متدهای اشیاء دیگر پیادهسازی میشود)
قوانین اتصال در مدل MVC
در نظر بگیرید که اشیاء مرزی و اشیاء موجودیت اسم هستند، در حالی که کنترلگرها فعل هستند.
در اینجا چهار قانون اساسی اتصال وجود دارد.
- بازیگران فقط میتوانند با اشیاء مرزی تعامل یا ارتباط برقرار کنند.
- اشیاء مرزی فقط میتوانند با کنترلگرها و بازیگران ارتباط برقرار کنند.
- اشیاء موجودیت فقط میتوانند با کنترلگرها تعامل داشته باشند.
- کنترلگرها میتوانند با اشیاء مرزی و اشیاء موجودیت، همچنین سایر کنترلگرها ارتباط برقرار کنند، اما با بازیگران نه.
به یاد داشته باشید که هم اشیاء مرزی و هم اشیاء موجودیت اسم هستند، در حالی که کنترلگرها فعل هستند. اسمها نمیتوانند با اسمهای دیگر صحبت کنند، اما فعلها میتوانند با اسمها یا فعلها صحبت کنند.
نمودار تحلیل استحکام در یک نگاه
فرض کنید ما توصیف ساده زیر از یک مورد استفاده در فرمت متنی داریم:
از صفحه جزئیات دانشآموز، معلم بر روی دکمه «افزودن دورهها» کلیک میکند و سیستم لیست دورهها را نمایش میدهد. معلم نام یک دوره را انتخاب کرده و دکمه «ثبتنام» را فشار میدهد. سیستم دانشآموز را برای دوره ثبتنام میکند.
اکنون میتوانید یک نمودار استحکام ساده بر اساس مورد استفاده بالا ایجاد کنید:
شما همچنین میتوانید از یک برچسب متنی برای پیوست کردن توصیف مورد استفاده در سمت راست نمودار استحکام استفاده کنید.
پنج مرحله برای ایجاد تحلیل استحکام
- شما تحلیل استحکام را برای یک مورد استفاده با مرور متن مورد استفاده انجام میدهید.
- یک جمله در یک زمان، و کشیدن بازیگران، مرز مناسب، اشیاء موجودیت و کنترلگرها، و اتصالات بین عناصر مختلف نمودار.
- شما باید قادر باشید دوره اصلی و تمام دورههای جایگزین را در یک نمودار جا دهید.
- هر کسی که یک نمودار استحکام را مرور میکند باید قادر باشد یک دوره عمل را در متن مورد استفاده بخواند، انگشتش را در کنار ارتباطات روی نمودار دنبال کند و یک تطابق واضح بین متن و تصویر ببیند.
شما احتمالاً باید متن مورد استفاده خود را در حین انجام این کار بازنویسی کنید تا ابهام را حذف کرده و به طور صریح به اشیاء مرزی و اشیاء موجودیت اشاره کنید. بیشتر مردم در پیشنویس اول متن مورد استفاده کاملی نمینویسند. بنابراین میتوانیم از تحلیل استحکام برای پر کردن شکاف بین متن مورد استفاده و نمودار استفاده کنیم.
توسعه سناریو مورد استفاده با استفاده از نمودارهای توالی MVC
بر اساس تحلیل استحکام، میتوانیم سناریوهای مورد استفاده (عادی یا جایگزین) را با استفاده از مجموعهای از نمودارهای توالی مرتبط در فرمت MVC توسعه دهیم. به همین ترتیب، MVCنمودار توالیدارای اشیاء رابط، اشیاء کنترلگر و اشیاء موجودیت است:
- موجودیتها اشیائی هستند که دادههای سیستم را نمایندگی میکنند: مشتری، محصول، تراکنش، سبد خرید و غیره.
- مرزها اشیائی هستند که با بازیگران سیستم ارتباط برقرار میکنند: رابط کاربری، دروازه پایگاه داده، پروکسی سرور و غیره.
- کنترلها اشیائی هستند که بین مرزها و موجودیتها واسطهگری میکنند.
آنها اجرای دستورات دریافتی از مرز را با تعامل با موجودیتها از طریق اشیاء مرزی هماهنگ میکنند. یک شیء کنترلگر معمولاً با سناریوی مورد استفاده مطابقت دارد و معمولاً با یک نمودار توالی نمایش داده میشود.
شما میتوانید از استریوتیپها برای خط حیات در نمودار توالی MVC استفاده کنید تا به وضوح نشان دهید که از چه نوع اشیائی در MVC استفاده میکنید، به طریقی مشابه نمودار تحلیل استحکام بالا.
مثال نمودار توالی MVC
فرض کنید یک برنامه وجود دارد که به شما اجازه میدهد افراد را جستجو کنید. رابط کاربری باید یک فیلد متنی داشته باشد که کاربر بتواند یک رشته جستجو وارد کند و ممکن است یک دکمه برای شروع جستجو داشته باشد. در نهایت، باید یک ناحیه داشته باشد که نتایج جستجو در آن نمایش داده شود. در مورد ما، این با یک مؤلفه لیست پیادهسازی شده است.
سناریوی مورد استفاده «جستجوی افراد» به این صورت است:
- کاربر یک رشته جستجو را در فیلد متنی وارد میکند
- کاربر بر روی دکمه جستجو کلیک میکند.
- نتیجه جستجو در لیست نتایج نمایش داده میشود.
نمودار توالی بالا نشان میدهد که چگونه کلیک دکمه کاربر در برنامه حرکت میکند تا اینکه نتیجه در نهایت در مؤلفه لیست نمایش داده شود.
مراجع
This post is also available in Deutsch, English, Español, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文.