Содержание

Single Responsibility Principle

Для каждого класса должно быть определено единственное назначение. Все ресурсы, необходимые для его осуществления, должны быть инкапсулированы в этот класс и подчинены только этой задаче.

Open&Closed Principle

Программные сущности ... должны быть открыты для расширения, но закрыты для модификации.

Liskov Substitution Principle

Производный класс должен быть взаимозаменяем с родительским классом.

Interface Segregation Principle

Много интерфейсов, специально предназначенных для клиентов, лучше, чем один интерфейс общего назначения.

Это Single Responsibility Principle, но для интерфейсов

Лучше не зависеть от того, что тебе не нужно

Много интерфейсов лучше, чем один

Код, который иллюстрирует высокоуровневые политики не должен зависеть от низкоуровневых деталей

Dependency Inversion Principle

Зависимость на Абстракциях. Нет зависимости на что-то конкретное.