Back to questions
Junior — Middle
57
Можете объяснить, что предполагает принцип открытости и закрытости в программировании?
Answer from AI
sobes.tech AI
Принцип открытости/закрытости (Open/Closed Principle) — один из ключевых принципов объектно-ориентированного программирования. Он гласит:
"Программные сущности (классы, модули, функции) должны быть открыты для расширения, но закрыты для модификации."
Это означает, что поведение системы можно расширять без изменения уже существующего кода, что снижает риск внесения ошибок и упрощает поддержку.
Например, если у вас есть базовый класс и вы хотите добавить новую функциональность, вместо изменения этого класса вы создаёте новый класс, который наследуется от базового и добавляет нужное поведение.
Пример на Python:
class Shape:
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 Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
import math
return math.pi * self.radius ** 2
# Теперь можно добавлять новые фигуры, не меняя существующий код
Таким образом, принцип помогает создавать гибкие и расширяемые системы.