معماری MVC اندروید چیست ؟

5
Rated 5 out of 5
5 out of 5 stars (based on 1 review)
Excellent100%
Very good0%
Average0%
Poor0%
Terrible0%
سلام خدمت کاربران کدایت با سری دیگر از دانستنی های اندروید در خدمت شما عزیزان هستیم .امروز قصد داریم در مورد معماری MVC اندروید کمی حرف بزنیم .

معماری MVC اندروید چیست ؟

بزارید خیلی راحتر برای شما توضیح بدهم. ما به عنوان یک برنامه نویس اندروید قبلتر که کد نویسی انجام میدادیم . و اون اپلیکیشن های موردنظرمون رو طراحی میکردیم از این معماری ها به خصوص معماری MVC که بحث امروزمون هست هیچ استفاده ای نمیکردیم. که البته کاری اشتباهی بود . رفته رفته کد نویسی ما پیچیده تر میشد و در پروژه های بزرگتر به مشکل بر میخوردیم . و اگر میخواستیم پروژه خودمون رو به یک برنامه نویس دیگر تحویل بدهیم . برای آن فرد توسعه دهنده بسیار دشوار بود که از کد نویسی های ما سر در بیارد و بتواند که ادامه برنامه را از سر بگیرد .

معماری MVC اندروید

پیاده سازی معماری MVC اندروید

برای همین ، ما ملزم به یادگیری معماری های اندروید هستیم تا هم کار ما حرفه ای تر شود و هم بتوانیم کدنویسی راحتر همچنین تر و تمیز تری داشته باشیم . ما در این بخش می خواهیم معماری MVC در اندروید را برای شما عزیزان توضیح دهیم.

MVC مخفف چیست ؟

اول از همه باید بدونید که MVC مخفف (Model – View – Controller )میباشد . این یعنی اون پروژه اندرویدی که با این معماری MVC ساخته میشود. به سه بخش کلی تقسم میشود . به عبارت دیگر این الگوی طراحی برنامه های اندرویدی به این صورت میباشد که برنامه را به سه لایه تقسیم میکند. من در قسمت پایین بخش های معماری MVC در اندروید رو برای شما عزیزان توضیح میدهم .

لایه های تشکیل دهنده معماری MVC اندروید کدامند؟

لایه Model : فرض کنید ما یک اپلیکیشن درست کردیم . این برنامه داده های خودش را از سرور یا از دیتابیس محلی دریافت میکند . در اینجا وظیفه لایه Model در معماری MVC اندروید دریافت داده ها میباشد.  به عبارت دیگر اون بخش از برنامه که با داده ها ارتباط دارد، و این داده ها را حالا از هرجایی دریافت میکنه و یا میفرسته لایه Model هست .ما در این لایه کار های لازم برای ارتباطمون رو پیاده سازی میکنیم . یعنی لایه Model در معماری MVC اندروید به مخازن داده (Repository) ، API ها و کلاس های داخلی دسترسی کامل دارد . همچنین علاوه بر کارهایی که گفتم منطق برنامه ما نیز در این بخش پیاده سازی میشود.

لایه View :این بخش اون UI که قرار برنامه ما داشته باشه و کاربر موقع باز کردن برنامه ما با آن روبه رو بشود را نشان میدهد. یعنی همون رابط کاربری ما هستش .  این که داده های که لایه Model از سرور  یا هرجای دیگر مهیا میکند را برای کاربران نمایش میدهد.

لایه Controller: ما برای اینکه بین دوتا لایه View و Model رابطه داشته باشیم .به یک لایه دیگر به اسم Controller نیاز داریم . در معماری MVC اندروید وقتی به عنوان مثال ، ما یک فرم ثبت نام داریم .رابط کاربری که به کاربر نشان داده میشود. یعنی همون فرم ثبت نام ما که لایه View نام دارد . وقتی این بخش توسط کاربر تکمیل میشود و دکمه ثبت رو میزنیم . لایه Controller در معماری MVC میاد. و تصمیم میگیرد که چه کاری انجام دهد. در نهایت به لایه Model خبر میدهد که داده ها را در سرور ذخیره کند . به مانند شکل زیر :

لایه های MVC

لایه های تشکیل دهنده معماری MVC

نحوی کار و ارتباط برقرار کردن لایه های این معماری به چه صورت میباشد ؟

همونطور که در عکس مشاهده میکنید . این لایه ها به صورت زنجیره ای کار میکنند. یعنی لایه View که با کاربر در ارتباط هستش اون واکنش های کاربر را دریافت میکنه. بعدش کاری که انجام میده این هست که اون رو به اطلاع لایه Controller در معماری MVC اندروید برساند . بعد از آن این لایه کنترلر هستش که تصمیم میگیره . بعد به لایه مدل خبر میده که اطلاعاتش رو بروزرسانی کند. و بعد از این کار لایه Model نیز به View خبر میده تا تغییرات لازم را در رابط کاربری انجام دهد.

به چه دلیلی از معماری mvc اندروید استفاده میکنیم؟

در قسمت بالا فهمیدیدم که معماری MVC چیست؟ حالا ما دو دلیل اصلی و مهم برای استفاده از این معماری در کدنویسی خودمون داریم اولین دلیل و یکی از مهم ترین دلایل برای این هست که کد نویسی تکراری نداشته باشیم . و اما دلیل دیگر استفاده ما از این معماری این هست که یک ساختار یکپارچه درست کنیم.

نکته دیگری که شما عزیزان باید آن را بدایند این هست که ما مدل های گوناگونی از معماری MVC اندروید داریم ولی دوتا از این مدل ها بسیار رایج هستند و بیشر مورد استفاده توسعه دهنگان قرار میگیرند . این دو مدل به شرح زیر میباشند .

پر استفاده ترین مدل های معماری MVC

  • مدل Passive :اگر بخواهم بهتون ساده بگم که این مدل دقیقا به چه صورتی میباشد . بهتر است یکم مطالب بالا رو با دقت مطالعه کنید . من در این مطالب به صورت خلاصه گفتم که ارتباط بین View و Model تنها از طریق لایه Controller میباشد .یعنی وقتی لایه Model ما داده ای را دریافت میکند کنترلر این خبر را با View میرساند. تا آن نیز خودش رو بروزرسانی کند . به این روش که فقط لایه Controller در ارتباط این دولایه دخالت دارد مدل Passive میگویند .
  • مدل Active:وقتی بین لایهModel و View پل ارتباطی دیگری به غیر از لایه Controller به وجود آوریم . در این صورت از مدل Activie استفاده کردیم . یعنی ما از چندین Observer استفاده میکنیم و آپدیت های خودمون را از Model به View منتقل میکنم . یعنی ما یک interface Observer رو در لایهView خودمونImplement میکنیم و بعدشم که یک Observer رو به لایه مدل اضافه میکنیم . با این کار ما هر موقع که بخواهیم لایه مدل خودمون رو آپدیت کنیم . این بروزرسانی به اطلاع لایه View ما نیز میرسد .

خلاصه مطالب

ما در بحث امروز برای شما عزیزان توضیح دادیم . که معماری MVC اندروید چیست؟ یعنی ما فهمیدیم که وقتی میگن MVC یعنی سه تا لایه Mode , View و Controller که هر کدام برای خودشون یک وظیفه مشخص دارند . یعنی وظیفه View این هست که رابط کاربری و را به کاربر نشون بدهد و بعدش اطلاعات موردنیاز را دریافت کند . و دراین حالت لایه Controller این بروزرسانی را میفهمد و به لایه Model خبر میدهد تا آن نیز خودش را بروزرسانی کند. یعنی به صورت زنجیره ای کار میکند و نکته ی دیگری که این که اگر تنها شریان ارتباطی بین Model و View لایه Controller باشد در این صورت مدل معماری ما Passive هستش ولی در غیره این صورت مدل Active هستش که در قسمت بالا برای شما عزیزان توضیح دادم.

برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]
اشتراک‌گذاری

فرشید حبیبی هستم . برنامه نویس موبایل، سئو و وردپرس همچنین علاقه مند به تولید محتوا در زمینه برنامه نویسی و تکنولوژی های روز دنیا.

یک نظر

  1. سجاد پاسخ

    سلام خواستم یه تشکری از شما کرده باشم . فقط اگه مشکلی نیست تو آپدیت های بعدی این پست پیاده سازی معماری mvc اندروید رو هم اضافه کنید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *