برنامه نویس اندروید - https://www.linkedin.com/in/iryebohs/
الگویِ طراحی Facade (جاوا و کاتلین)
خیلی وقتها شما شما یک سیستم پیچیده پیادهسازی کردید و نیاز دارید پیچیدگی اون سیستم رو از کد قسمت دیگهای مخفی کنید ، یکی از کاربردهای الگویِ Facade در این زمینه هست !
معنی لغوی Facade به معنی "نَما" هست ، پس شما کاری که میکنید اینه که یک نما از سیستم به کدتون میدید و این نما شامل توابع مورد نیازتون هست ، یکی از کتابخانههای مشهور اندروید که از این الگو استفاده میکنه Retrofit هست که شما دیگه کاری با پیچیدگی پیادهسازی توابع مربوطه ندارید و صرفا با گرفتن instance از Retrofit به توابع مورد نظرتون دسترسی دارید ، ممکنه دقیق متوجه حرفهای من نشده باشید پس به این تصویر نگاه کنید :

این شکل یک شکلِ مینیمال از آنچه اتفاق میافتد است ، ماژولهای مختلف با هم تعامل دارند و یک سیستم رو تشکیل میدهند و اگر ما بخوایم ازشون تو کد استفاده کنیم کارمون خیلی سخت میشه پس نیاز داریم کلاسی به اسم Facade بسازیم تا نماینده و نَمای کل اون سیستم برای ما باشه ، این الگو جزوِ Structural ها حساب میشه .
صورت مساله
سیستمِ پخشِ موسیقیای داریم که شامل یک موزیک پلیر ، یک نمایشگر و باند است ، سیستم به این شکل تعریف شده که زمانی که موسیقی در حال پخش بود اطلاعات درون نمایشگر نشان داده شود و از باند پخش شود ، از طریق نمایشگر میتوانیم موسیقی رو کنترل کنیم ، همین طور باید دقت کنیم که موزیک پلیر و اسپیکر فقط در حالتی کار میکنند که روشن باشند ، این روشن بودن را نیز مانیتور کنترل میکنید ، یک سیستم پیچیده ! کلاسی خواهیم ساخت که نماینده کلِ این سیستم برای ما باشد .
اول از همه سه کلاس MusicPlayer ، Screen و Speaker رو ایجاد میکنیم :
حالا نیاز به یک کلاس با الگویِ Facade داریم که خلاصه آنچه ما نیاز داریم را برای ما تهیه کنید ، ما در این کلاس فقط نیاز داریم : 1.آهنگ پخش کنیم 2.کلِ سیستم را خاموش کنیم :
و این طوری پیچیدگی کلِ سیستم از کدِ Client پنهان میمونه :
باقی مقالات در مورد الگویهای طراحی رو در این مقاله بخونید .
من رو در لینکدین و اینستاگرام دنبال کنید ???
اگه دوست داشتید میتونید به صفحه Spotify بنده هم برید و موسیقی های منو گوش بدید ???
مطلبی دیگر از این انتشارات
پیاده سازی هوش مصنوعی که بهتر از شما بازی می کنه! (2)
مطلبی دیگر از این انتشارات
دوره ها آموزشی رایگان دروس مرتبط با ریاضی
مطلبی دیگر از این انتشارات
مروری بر تاریخچه ASP.NET و مایکروسافت