Рубрика: ООП «принципы»
1. Single responsibility principle
Принцип единой ответственности
один класс должен решать одну задачу
применимо сущность решает одну задачу
у каждого класса одна зона ответственности
мы все декомпозируем на модули
- к классу
- к функциональному программированию
- к фронтенду
- к компонентам
не должны одновременно (антипаттерн или God object)
- у которого миллион обязанностей
- много связанного кода
- что-то ломается одно, то что-то ломается другое
- много строк в коде класса
- дорого вносить изменения в большой класс
Вынести классы по определенной задаче для сущности
+ мы не ковыряемся в одной сущности
мы идем в конкретный модуль и решаем конкретную локальную задачу
— мы разделили модель данных (класс объекты, которые содержат какое-то состояние)
— мы разделили поведение (каждый класс отвечает за какую-то конкретную операцию)
— мы можем расспалерить задачи (дать работать разработчикам)
- логировать что-то
- записывать что-то
- отправлять что-то
- выводить что-то
ООП S.O.L.I.D «понятие»
5 принципов
принципы подразумевают правила, ограничения, набор каких-то действий
— помогают разработчикам разговаривать на одном языке
вхождение в новый проект другой организации затратен по времени
свои принципы, правила, каждый пишет как хочет
идеальный мир, в котором проектные знания сводится к минимуму
— фреймворки задают базовую структуру
— подходы solid позволяют писать в примерно похожем стиле
— парадигмы ООП, функциональное программирование
— паттерны
проект
- масштабируемость проекта
- легкое вхождение в понятие кода (solid,паттерны,фреймворки)
- код должен быть простым
— разрабатывать поддерживаемые, масштабируемые приложения
- определить контракт взаимодействия между классами
- определяем поведение, которое впоследствии будет реализовано в каком-то классе
- как будут вести себя наследники без каких-либо деталей
- нет ни какой реализации
- абстрактные методы
- не может быть конструкторов
- не может содержать поля классов
- описывается сигнатура методов
- публичный контракт взаимодействия
по умолчанию все члены интерфейса имеют модификатор public - Полиморфизм
Передаётся тип данных — это тип интерфейса
в качестве параметра будет принимать объект класса, который у нас будет реализовывать интерфейс. - интерфейс может содержать свойство
свойство — это методы, которые маскируются
общий класс создаётся благодаря наследованию
базовый класс класс, который наследуется
Характерные Особенности
присущие множеству связанных элементов