❌ باور غلط
«هرچه تعداد Design Patternهایی که در پروژه استفاده کنیم بیشتر باشد، کیفیت طراحی هم بالاتر است.»
✅ واقعیت
ءDesign Patternها قرار نیست کیفیت طراحی را ایجاد کنند.آنها قرار است یک مسئله تکرارشونده را با یک راهحل شناختهشده حل کنند.
اگر مسئله وجود نداشته باشد، Pattern هم ارزشی ایجاد نمیکند.
بارها دیدهام پروژههایی که پر از Factory، Strategy، Decorator، Mediator و... هستند.
اما تغییر دادن یک قابلیت ساده در آنها، ساعتها زمان میبرد.نه به خاطر پیچیدگی مسئله...
بلکه به خاطر پیچیدگیای که خودمان ساختهایم.
از طرف دیگر، پروژههایی را هم دیدهام که شاید حتی یک Pattern را نتوان روی آنها نامگذاری کرد.
اما خوانا بودند.
تستپذیر بودند.
و تغییر دادنشان ساده بود.
نکته مهم اینجاست: Design Pattern، هدف نیست. فقط یک ابزار است.
همانطور که چکش برای هر چیزی ساخته نشده، Design Pattern هم برای هر کدی مناسب نیست.
مهندسان باتجربه معمولاً هنگام طراحی از خودشان نمیپرسند:
«کدام Pattern را اینجا استفاده کنم؟»
آنها میپرسند: «اینجا چه مشکلی دارم؟»
اگر Pattern آن مشکل را حل کند، از آن استفاده میکنند.
اگر نه، سادهترین راهحل را انتخاب میکنند.
💡 جمعبندی
کدی که هیچ Pattern مشهوری ندارد اما بهراحتی قابل فهم، تغییر و نگهداری است،
از کدی که فقط برای نمایش دانش الگوهای طراحی نوشته شده،ارزش مهندسی بیشتری دارد.چون در مهندسی نرمافزار،سادگی یک مزیت است؛ نه نشانه کمتجربگی.