روز برنامه‌نویس مبارک 🤩🎉 از هدایای روز برنامه‌نویس جا نمونی ⌛
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ علیرضا پورهادی
اصل single responsibility
امیر صالحی حل شده توسط امیر صالحی

سلام
 

در این پروژه داخل کلاس QueryBuilder از تعداد متدهای زیادی استفاده شده است. یعنی در اصل این کلاس وظایف زیادی به عهده دارد مثل ایجاد یک رکورد جدید، حذف رکورد، آپدیت کردن اون و همچنین فچ کردن اون و ’.... آیا این موضوع اصل single responsibility رو نقض نمی‌کنه؟ اگر اینطوره، بهتره چطوه پروژه رو توسعه بدهیم؟

سلام و احترام

هدف از SRP جلوگیری از انجام وظایف متفاوت برای کلاس هست

میتونید از دیزاین پترن builder هم استفاده کنید برای ساختن یه orm، مثال خوب از builder خود سورس کد لاراول هستش https://github.com/laravel/framework/tree/8.x/src/Illuminate/Database/Query

درباره دیزاین پترنش هم میتونید اینجا بخونید https://refactoring.guru/design-patterns/builder/php/example

بهترین پاسخ
امیر صالحی ۲۶ مهر ۱۴۰۰، ۱۵:۲۰