TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #4201 3.24K
🕹️ Композиция против Наследования:

Проводится аналогия между тем, как в Тетрисе составляются фигуры, чтобы создать линии, и тем, как объекты комбинируются в разработке программного обеспечения.
Объясняется, как композиция способствует гибкости и модульности, в то время как наследование может привести к Проблеме Хрупкого Базового Класса и сильной связанности.

🔧 Принцип Одной Ответственности (SRP):

В статье подчеркивается важность SRP в создании меньших, поддерживаемых единиц кода.
Утверждается, что разделение кода не должно зависеть исключительно от композиции, а скорее от соблюдения SRP, что делает код более переиспользуемым и поддерживаемым.

💉 Внедрение Зависимостей:

Вместо использования наследования для переиспользования кода предлагается использовать внедрение зависимостей и композицию.
Используя композицию, разработчики могут сократить влияние изменений и избежать Проблемы Хрупкого Базового Класса.

🌟 Принципы SOLID:

Тут также кратко затрагиваются принципы SOLID, упоминая Принцип Одной Ответственности и Внедрение Зависимостей, и намекают на то, что они будут рассмотрены более подробно в будущем контенте.

👀 Взгляд на Наследование:

Хотя здесь советуют предпочитать композицию перед наследованием по причинам, упомянутым выше, она также признает, что не все наследование плохо.
Разработчики должны учитывать, когда наследование может быть уместным, и предоставляет точку зрения Матиаса Верраса на определение эвристик для его использования.
Andrew Cairns Composition over Inheritance A lot can be learned about software development by playing retro games.
  • 👍 3
  • ❤ 1
More from @phpproglib
  1. Oct 2, 2026🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы,…
  2. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  3. Sep 30, 2026🐸 Библиотека пхпшника
  4. Sep 29, 2026💡 Laravel-фича, которая спасает тесты от случайных запросов Http::preventStrayRequests()…
  5. Sep 28, 2026🔐 ramsey/uuid — UUID без самописного кода Библиотека помогает генерировать, парсить и вал…
  6. Sep 28, 2026🤔 Что выведет код? ❤️ — 1 🔥 — 2 👍 — 12 👾 — Fatal error 👇 Правильный ответ (нажми, что…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →