Можно ли связать принцип Single Responsibility с инкапсуляцией
Python
Senior
Без компании
Можно ли связать принцип Single Responsibility с инкапсуляцией
Ответы
Да, принцип Single Responsibility (SRP) и инкапсуляция тесно связаны. SRP требует, чтобы класс отвечал только за одну задачу, а инкапсуляция скрывает внутреннюю реализацию, предоставляя четкий интерфейс. Вместе они помогают создавать модульные, поддерживаемые классы.
Пример:
```
class User:
def __init__(self, name, email):
self.name = name
self.email = email
def get_user_info(self):
return f"Name: {self.name}, Email: {self.email}"
class UserDB:
def save_to_db(self, user):
print(f"Saving {user.name} to database")
# SRP: User — хранение данных, UserDB — работа с БД.
# Инкапсуляция: детали сохранения скрыты в UserDB.
```
SRP разделяет ответственности, а инкапсуляция защищает данные и логику, уменьшая связность.