Вы находитесь на странице: 1из 4

SOLID

S - принцип единственной ответственности

например, класс новости, мы имеем параметры в нём и т.п., но например методы визуализации
например этого класса в джейсон, хтмл, хмл нельзя писать в этом классе а нужно вынести эту
логику в отдельный класс, модуль..

Open Close Principle - открытые для расширения, закрытые для модификации

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

Liskov substitution principle - функции которые используют базовый тип должны уметь с ним
взаимодействовать + с подтипами этого типа при этом незная ничего про это.

В общем нужно понимать что тут нужно выбирать просто правильно слои абстракции для
логического поведения. То-есть условно, наследники должны иметь доступ к тому, к чему реально
логически должны иметь доступ, решается построением правильных слоёв абстракции.
К примеру тут нету доступа у HOC к рендер методу, но мы его наследуем, за счёт доп. слоя
абстракции это можно решить.

Interface segregation principle

Те классы которые наследуются от базового, если не используют методы базового класса - не


должны его наследоватьa

Dependency inversion principle

Верхний уровень модулей не должен зависеть от абстракции внутренних, должны зависить от


абстракций а не от конкретики

Класс не должен зависить от конкретной реализации.


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

Вам также может понравиться