Принципы SOLID (или любые связанные с ними принципы) являются руководством, чтобы избежать потенциальных ошибок/угроз в программном проекте с точки зрения внедрения и обслуживания. И только следование принципу слепо, не зная, что его отражение не будет работать вообще.
Как ваш пример, я возьму OCP. Ключевой концепцией OCP является то, что если ваш проект на 100% соответствует OCP, любой другой (может быть, посторонний, новый участник) может делать кодирование, не глядя на текущий код, а просто глядя на вашу документацию api (об обнаруженном методе) что действительно облегчает жизнь этого человека. А также нет необходимости тестировать существующий код снова и снова, потому что для существующего кода не будет никаких изменений. Но действительно есть ситуации, когда нам приходится нарушать OCP.
Ex:.
новое требование (необходимо реализовать внутри существующего класса),
Исправлена ошибка, исправить
ограниченной рамки поддержки (любая структура MVC) и т.д. .
А также могут быть ситуации, когда мы нарушаем OCP, зная, что это не повредит.
О принципах, вы можете иметь простую аналогию, подобную этой. Когда вы идете по дороге, есть множество принципов, которые следует соблюдать в качестве пешехода.
Ex:
Прогулка по левой стороне. (Чтобы вы могли видеть входящие транспортные средства)
Пересекать только на пешеходном переходе (чтобы транспортные средства могли видеть вас четко, и они останавливались).
За ними, насколько это возможно, определенно сделайте вас в безопасности. Но представьте себе ситуацию, когда на дорогах нет миль на дорогах, вы все еще ищете пешеходный переход, чтобы пересечь дорогу? без прав? Вы знаете, что вы в безопасности, даже не пешеходный переход, и вы пересекаете. И если есть ситуация, когда левая сторона на дороге довольно грязная и не может ходить дальше, вы все равно будете идти на грязь, чтобы следовать принципу? без прав. Вы предпочтете прогуляться по правой стороне, зная ситуацию.
Я думаю, вы получили представление о принципах. :)
SOLID - это вдохновение. Мастера знают, когда нарушать правила. – usr
Я нашел критический отзыв о SOLID http://www.tonymarston.co.uk/php-mysql/not-so-solid-oo-principles.html. Кто-нибудь может с ним согласиться? – Mehmet