این مقاله به مشکل تکرار فیلترهای LINQ در سرویسها و کلاسهای مختلف .NET میپردازد. نویسنده الگوی Specification را به عنوان راه حلی برای این مشکل معرفی میکند. در مثالهای ارائه شده، یک شرط فیلتر (Balance >= 100000 && Age >= 18) در چندین سرویس (CustomerService, ReportService, NotificationService, CustomerController) تکرار شده است. این تکرار باعث میشود تغییرات در شرط فیلتر، نیاز به تغییر در چندین مکان داشته باشد و احتمال بروز خطا را افزایش دهد. الگوی Specification با جدا کردن منطق فیلتر از کوئری اصلی، این مشکل را حل میکند و قابلیت نگهداری و تستپذیری کد را بهبود میبخشد.
مشاهده مطلب اصلی