نمای کلی لایه Application
لایه Application در سیستم Bookify مسئول مدیریت منطق کاربردی و پردازش درخواستها است. این لایه از الگوهای مختلفی مانند CQRS و Dependency Injection برای جداسازی مسئولیتها و افزایش تستپذیری استفاده میکند.
اجزای کلیدی
Bookings:
- مدیریت رزروها شامل ایجاد، لغو، تایید و تکمیل رزروها
- استفاده از Command و CommandHandler برای پردازش درخواستها
Behaviors:
- مدیریت رفتارهای مشترک مانند اعتبارسنجی و ثبت لاگها
- استفاده از MediatR برای مدیریت رفتارهای مشترک
Exceptions:
- مدیریت خطاهای سیستم شامل خطاهای اعتبارسنجی و همزمانی
- استفاده از کلاسهای اختصاصی برای مدیریت خطاها
Apartments:
- مدیریت جستجوی آپارتمانها و ارائه اطلاعات مربوط به آنها
- استفاده از Query و QueryHandler برای پردازش درخواستها
Abstractions:
- تعریف اینترفیسها و قراردادهای مشترک برای مدیریت وابستگیها و پردازش درخواستها
- استفاده از الگوی Dependency Injection برای مدیریت وابستگیها
مزایای این طراحی
جداسازی مسئولیتها:
- هر بخش از سیستم تنها یک وظیفه مشخص دارد
- رعایت اصل Single Responsibility
قابلیت تستپذیری بالا:
- امکان تست بخشهای مختلف سیستم به صورت مجزا
- افزایش قابلیت اطمینان سیستم
مدیریت متمرکز وابستگیها:
- استفاده از الگوی Dependency Injection برای مدیریت وابستگیها
- کاهش وابستگیهای سختکد شده