Ответ
SOLID — это набор принципов объектно-ориентированного проектирования:
-
Single Responsibility (Принцип единственной ответственности)
Класс должен решать только одну задачу. -
Open-Closed (Принцип открытости/закрытости)
Классы должны быть открыты для расширения, но закрыты для модификации. -
Liskov Substitution (Принцип подстановки Барбары Лисков)
Наследники должны корректно работать вместо родительских классов. -
Interface Segregation (Принцип разделения интерфейсов)
Много специализированных интерфейсов лучше одного общего. -
Dependency Inversion (Принцип инверсии зависимостей)
Зависимости на абстракциях, а не на конкретных реализациях.
Пример на Go (DIP):
type Storage interface {
Save(data string) error
}
type Database struct{}
func (d *Database) Save(data string) error {
// сохранение в БД
}
type Service struct {
storage Storage
}
func NewService(s Storage) *Service {
return &Service{storage: s}
}