جاوید ستار | Javid Sattar
جاوید ستار | Javid Sattar
خواندن ۲ دقیقه·۶ ماه پیش

کاربرد اصول SOLID در طراحی برنامه‌های اندروید


اصول SOLID مجموعه‌ای از اصول طراحی شی‌گرا هستند که توسط رابرت مارتین (عضو هیئت مدیره Agile Alliance) معرفی شده‌اند. این اصول به توسعه‌دهندگان کمک می‌کنند تا کدی انعطاف‌پذیر، قابل‌گسترش و آسان برای نگهداری بنویسند. در این مقاله، نحوه کاربرد این اصول در طراحی برنامه‌های اندروید را بررسی خواهیم کرد.

اصل تک مسئولیتی (Single Responsibility Principle - SRP)

این اصل می‌گوید که هر کلاس باید تنها یک مسئولیت داشته باشد و هر تغییر در آن کلاس باید منحصراً مربوط به آن مسئولیت باشد. در اندروید، می‌توانید از این اصل برای جدا کردن منطق کسب‌و‌کار از رابط کاربری، جداسازی وظایف ارتباط با داده‌ها از سایر وظایف، و ایجاد کلاس‌های با مسئولیت‌های مشخص استفاده کنید.

اصل باز/بسته (Open/Closed Principle - OCP)

طبق این اصل، واحدهای نرم‌افزاری باید برای گسترش باز و برای تغییر بسته باشند. در اندروید، می‌توانید از الگوهای طراحی مانند استراتژی، دکوریتور و ... برای رعایت این اصل استفاده کنید. به این ترتیب، می‌توانید رفتار برنامه را بدون تغییر در کد موجود گسترش دهید.

در این مثال، می‌توانیم شکل‌های جدید را با پیاده‌سازی رابط Shape اضافه کنیم، بدون نیاز به تغییر در کلاس ShapeRenderer.


اصل جایگزینی لیسکوف (Liskov Substitution Principle - LSP)

این اصل می‌گوید که زیرکلاس‌ها باید بتوانند جایگزین کلاس پایه شوند، بدون اینکه رفتار برنامه تغییر کند.

در اندروید، باید دقت کنید که زیرکلاس‌ها رفتار کلاس پایه را به گونه‌ای تغییر ندهند که با قراردادهای تعریف شده در کلاس پایه ناسازگار باشد.

در این مثال، ElectricVehicle می‌تواند جایگزین Vehicle شود، زیرا رفتار startEngine را به گونه‌ای پیاده‌سازی کرده است که با قرارداد تعریف شده در کلاس پایه سازگار است.


اصل معکوس وابستگی‌ها (Dependency Inversion Principle - DIP)

این اصل می‌گوید که واحدهای سطح بالا نباید به واحدهای سطح پایین وابسته باشند، بلکه هر دو باید به مفاهیم انتزاعی وابسته باشند. در اندروید، می‌توانید از الگوهای طراحی مانند Factory و تزریق وابستگی یا استفاده از کتابخانه هایی مانند (Dagger, hilt, koin) برای رعایت این اصل استفاده کنید.

در این مثال، کلاس DataManager به رابط NetworkClient وابسته است، نه به پیاده‌سازی خاص آن (HttpClient). این امر به ما امکان می‌دهد در آینده پیاده‌سازی‌های دیگری از NetworkClient را جایگزین کنیم، بدون نیاز به تغییر در DataManager.


هدفم از نوشتن این مقاله این بود که درک بهتری از کاربرد اصول SOLID در طراحی برنامه‌های اندروید داشته باشید. این اصول به شما کمک می‌کنند تا کد انعطاف‌پذیرتر، قابل گسترش‌تر و آسان‌تر برای نگهداری بنویسید.
البته پیاده سازی ها توی پروژه های واقعی به این شکل نیست و شما باید بیشتر در مورد نحوه پیادی سازی ها مطالعه کنید این مقاله بیشتر هدفش اینه شما را به صورت مفهومی با اصل SOLID آشنا کنه


ممنون از زمانی که گذاشتین :))

خدانگهدارتون


اصول solidاندرویدمعماری تمیزsolidclean architecture
برنامه نویس اندروید
شاید از این پست‌ها خوشتان بیاید