Разбор ООП с Delphinum

29.07K
.
# 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