Разбор ООП с Delphinum

27.01K
.
# Koenig (25.11.2016 / 18:10)
ДоХтор, но ты в аргумент проверку типа Foo убери, и в конструкторе сделай проверку типа, в которой если объект не подходит, вызывать преобразователь, который в итоге вызовет new self($args);
Понял, спасибо, Димон.
.
Koenig, ну я вопрос не понял )
.
(\/)____o_O____(\/)
ДоХтор, ну я не пробовал, теоритически гг
.
# Delphinum (25.11.2016 / 18:12)
А разве такого рода проверка необходима? Есть возможность передать в программу данные неизвестного типа?
Ну, вроде бы как бывает такая необходимость. Есть же необходимость в контроле типов принимаемых методами аргументов.
.
(\/)____o_O____(\/)
Delphinum, есть у меня класс, который в конструктор получает один из двух или трех типов объектов. например это xml , их в стандартном пхп несколько или дата
.
ДоХтор, как правило внутри программы все приходящие извне данные предварительно фильтруются и приводятся к ожидаемым типам, а не передаются в функции и методы "как есть" в надежде, что "пронесет" )
.
Koenig, нет, когда ты объявляешь тип аргумента, ты не просто говоришь "хочу XML", по сути ты ожидаешь конкретный набор методов и публичных свойств. Если ты получишь на вход DOMDocument, то ожидаешь что у него будут данные методы для работы с ним, а если SimpleXML, то другие методы и ты не сможешь используя одну логику работать с двумя разными классами.
.
(\/)____o_O____(\/)
Delphinum, то есть только велосипед?
.
Koenig, ну вообще это не велосипед, это правильная реализация. Языки программирования не должны допускать неоднозначности.
.
(\/)____o_O____(\/)
Delphinum, мы же велосипедисты
Всего: 713