Extend or implement
🌐Автор обсуждает различие между наследованием абстрактных классов и реализацией интерфейсов в программировании, а также свое недовольство тем, как часто наследование используется неправильно. Он указывает, что наследование зачастую применяется для обеспечения гибкости и конфигурируемости кода, что кажется ему неправильным, поскольку это противоречит первоначальному замыслу объектно-ориентированного программирования (ООП), описанному Аланом Кеем.
🔄Согласно его мнению, наследование должно отражать реальные отношения (например, AdminUser наследует User), тогда как интерфейсы должны описывать техническое поведение (например, User реализует Model). Он также выражает разочарование, что современные языки программирования часто допускают злоупотребление наследованием, хотя есть и другие, более подходящие способы решения проблем конфигурации и расширяемости кода.
✅В итоге он находит свое представление о наследовании и интерфейсах более удобным для работы, хотя признает технические ограничения PHP.
Post #4775
2.75K
- 👍 6
- 🎉 4
- 🔥 1