وبلاگِ آریان

MVC vs MVT

تفاوت بین معماری MVC و MVT

بسیاری از توسعه دهندگان درباره تفاوت معماری MVC و MVT ممکنه براشون سوال پیش بیاد. در این پست، تفاوت این دو معماری نرم افزار رو بررسی می کنیم.

MVC چیست؟

MVC که مخفف Model View Controller است کد رو به سه بخش طبقه بندی می کند. و
Model View Controller ، معروف به MVC کد را به عنوان سه جز جدا می کند. MVC منطق کسب و کار و لایه ارائه را از یکدیگر جدا می کند. به طور سنتی برای رابط های کاربری گرافیکی دسک تاپ (GUI) استفاده می شد. امروزه ، معماری MVC برای طراحی برنامه های وب و همچنین برنامه های تلفن همراه محبوب شده است.

معماری MVC

Model – این لایه با منطق مربوط به داده سروکار دارد. به عنوان مثال ، می تواند داده ها را در پایگاه داده بازیابی ، تغییر داده و ذخیره کند.
View – می توانیم آن را لایه ارائه بنامیم. این مسئول جمع آوری داده ها از مدل یا کاربر و ارائه آنها است. در یک برنامه وب ، هر آنچه در مرورگر نمایش داده می شود ، تحت View قرار می گیرد.
Controller – این جریان داده و تعامل بین نمای و مدل را کنترل می کند. به عنوان مثال ، یک کنترل کننده ، براساس یک درخواست یا اقدام ، داده های یک پایگاه داده را با کمک Model جمع آوری کرده و از طریق Views برای کاربر ارسال می کند.

مزایا

توسعه برنامه های بزرگ را آسان می کند.
همکاری و همکاری با چندین توسعه دهنده آسان است.

معایب


View توسط Model و Controller کنترل می شود.
برای کاربردهای کوچک مناسب نیست

MVT چیست؟


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

معماری MVT

مدل – همان مدل در MVC. این کد حاوی کدی است که مسئولیت رسیدگی به داده ها و پایگاه های داده را دارد.
View – در الگوی طراحی MVT ، View تعیین می کند که چه داده ای باید نمایش داده شود
الگو – الگوها برای تعیین ساختار برای یک خروجی استفاده می شوند. داده ها را می توان با استفاده از متغیرهایی در یک الگو جمع کرد. نحوه ارائه داده ها را مشخص می کند. به عنوان مثال نمایی از لیست عمومی است که می توانیم از آن برای نمایش مجموعه ای از سوابق از پایگاه داده استفاده کنیم.

مزایای


کمتر همراه است.
مناسب برای کاربردهای کوچک تا بزرگ
اصلاح آسان

معایب


گاهی اوقات ، درک جریان می تواند گیج کننده باشد.
اصلاح مدلها / نماها باید بدون تأثیر بر الگوها با دقت انجام شود.

تفاوت بین MVC و MVT


تفاوت اصلی بین MVC و MVT این است که در یک الگوی Model View Controller ، ما باید تمام کد های خاص کنترل را بنویسیم. اما در MVT ، قسمت کنترل کننده توسط خود فریم ورک مراقبت می شود.

بگذارید این را با یک مثال توضیح دهم. تصور کنید شما مجبورید لیستی از کتابهایی را که در کتابخانه دارید نمایش دهید ، ذخیره شده جدولی است به نام کتاب. در معماری MVC ، شما باید کد را برای واکشی لیست کتابها از پایگاه داده ، نوشتن لایه ارائه (من در مورد HTML ، CSS صحبت می کنم) ، آن را با یک URL نقشه برداری کرده و برای کاربر ارسال کنید.

اما در چارچوب هایی مانند Django (از معماری MVT استفاده می کند) نیازی به نوشتن هیچ کدی در رابطه با واکشی داده ها از پایگاه داده و نگاشت آنها با URL نیست. همه این فعالیتها توسط خود چارچوب انجام می شود. تنها کاری که شما باید انجام دهید این است که به چارچوب بگویید چه داده هایی باید به کاربر ارائه شود (جدول کتاب ها). سپس این چارچوب بر اساس داده ها یک نمای ایجاد می کند و آن را برای کاربر ارسال می کند.

الگوی کلاسیک MVC با مدیریت وضعیت یک برنامه کار می کند. وقتی کاربر عملیاتی را انجام می دهد یا درخواستی را ارائه می دهد ، عملی در Controller فراخوانی می شود. سپس Controller یا به Model می گوید که تغییرات را تغییر دهد و View را به روز کند یا View را بر اساس Model برمی گرداند. از این رو می توان گفت که View توسط Controller و Model کنترل می شود.

با این حال ، MVT رویکرد کمی متفاوتی دارد. هنگامی که کاربر درخواست HTTP را انجام می دهد ، نمای مربوطه یک پرس و جو در مورد Model انجام می دهد و مجموعه نتیجه را از Model جمع می کند. سپس View نتیجه را در یک الگوی پر کرده و برای کاربر ارسال می کند.

بر خلاف MVC ، نمای با یک مدل همراه نیست. این باعث می شود MVT به آرامی جفت شود و به راحتی اصلاح شود.

این پست مفید بود؟ با گذاشتن کامنت در ادامه به من اطلاع دهید.

منبع

تصویر آریان عمرانی

آریان عمرانی

برنامه نویس و گیک عاشق ساختن

2 پاسخ

  1. با سلام ممنون از مقاله خوبتون ببخشید پایتون بر پایه mvc هست یا mvt? و کسی که mvt کار کنه می تونه mvc هم کار کنه یا باید از اول آموزش ببینه؟

    1. سلام
      mvt و mvc معماری هست که برنامتونو بر اساس اون با استفاده از زبان برنامه نویسی مینویسین.
      باید بر اساس نیاز، معماری مورد نظر رو انتخاب و دربارش تحقیق کنین.