CodeShot
Midسختی 3 از ۵· در 62٪ مصاحبه‌های این حوزه پرسیده شده

اصل Open/Closed در SOLID یعنی چه؟

نشان کردن

پاسخ کوتاه

کلاس باید برای توسعه باز و برای تغییر بسته باشد.

پاسخ کامل

رفتار جدید باید با افزودن کد جدید (مثلاً یک پیاده‌سازی تازه از یک Interface) اضافه شود، نه با تغییر کدی که قبلاً نوشته و تست شده است؛ این کار ریسک شکستن رفتار موجود را کم می‌کند.

مثال کد

public interface IDiscountStrategy { decimal Apply(decimal price); } public class BlackFridayDiscount : IDiscountStrategy { /* ... */ }