Автор оригинала: Udit Rastogi.
Ниже приведены принципы проектирования,которые должен знать каждый разработчик при внедрении, разработке и проверке любого кода:
** ПРИНЦИП ЕДИНОЙ ОТВЕТСТВЕННОСТИ ** Каждый объект должен нести единую ответственность, и все его услуги должны соответствовать этой ответственности.
Вещи, которые меняются вместе, могут быть собраны вместе.
** ПРИНЦИП ПОДСТАНОВКИ ЛИСКОВА * * Если он похож на утку, крякает,как утка, но нуждается в батарейках, вы, вероятно, ошиблись Абстракция .
В иерархиях классов мы должны иметь возможность рассматривать специализированный объект так,как если бы он был объектом базового класса.
** НЕ ПОВТОРЯЙСЯ(СУХО) ** Повторение-корень всего программного зла. СУХОЙ-это принцип, направленный на сокращение повторения информации всех видов.
Просто не повторяйте код, который вы/кто-то уже написал. Попробуйте повторно использовать тот же существующий код.
** ПРЕДПОЧТЕНИЕ КОМПОЗИЦИИ ПЕРЕД НАСЛЕДОВАНИЕМ ** Наследование-это наиболее часто используемая концепция.
Классы должны обеспечивать полиморфное поведение и повторное использование кода за счет их состава (путем содержания экземпляров других классов, реализующих желаемую функциональность), а не наследования от базового или родительского класса.
** СЕГРЕГАЦИЯ ИНТЕРФЕЙСА ** Адаптировать интерфейсы к индивидуальным потребностям клиента.
Клиенты не должны зависеть от интерфейсов, которые они не используют.
** ТЕБЕ ЭТО НЕ ПОНАДОБИТСЯ ** Не тратьте свои ресурсы на то, что, по вашему мнению, вам может понадобиться.
Решите завтрашнюю проблему завтра, это должно быть хорошо для дизайна сейчас.
** БУДЬ ПРОЩЕ, ГЛУПЫЙ (ПОЦЕЛУЙ) ** “Если вы не можете объяснить это шестилетнему ребенку, вы недостаточно хорошо это понимаете” –Альберт Эйнштейн
Оригинал: “https://www.codementor.io/@uditrastogi/design-principles-to-achieve-right-balance-ry3jebruh”