Skip to main content
Практика завдань

Що таке принцип відкритості-закритості (OCP)?

javascript
// Погано: Модифікація існуючого коду для нових фігур class AreaCalculator { calculate(shape) { if (shape.type === "circle") { return Math.PI * shape.radius ** 2; } else if (shape.type === "square") { return shape.side ** 2; } // Додати трикутник? Треба змінювати цю функцію! } } // Добре: Відкритий для розширення class Shape { area() { throw new Error("Треба реалізувати"); } } class Circle extends Shape { constructor(radius) { super(); this.radius = radius; } area() { return Math.PI * this.radius ** 2; } } // Можна додати Triangle без модифікації існуючого коду!

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.

Дочитали статтю?
Практика завдань