Встречается на собеседованиях • сегодня
Что такое принцип открытости/закрытости (Open-Closed Principle)
Принцип открытости/закрытости (OCP) гласит, что сущности должны быть открыты для расширения, но закрыты для модификации. Это означает, что поведение класса можно изменять, не изменя его исходный код.
Пример нарушения OCP:
python
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
class AreaCalculator:
def calculate(self, shapes):
total = 0
for shape in shapes:
if isinstance(shape, Rectangle):
total += shape.width * shape.height
return total
text
Правильный подход с соблюдением OCP:
```python
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
class AreaCalculator:
def calculate(self, shapes):
return sum(shape.area() for shape in shapes)Теперь можно добавлять новые фигуры, не изменяя класс AreaCalculator.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы