![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| MyDarkSide |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 21.3.2008 Репутация: нет Всего: -1 |
продолжаю погружаться в мир ООП на PHP5,
дошел до интерфейсов очень удобная штука, особенно когда надо написать что-то типа набора драйверов например для работы с БД, написал интерфейс указал какие методы должны реализовать драйвер, и отдаешь работу другим программистом. Но как всегда ложка дёгтя: как другой программист узнает что он должен вернуть из метода ? проверка типов для аргументов методов есть, а как указать, что должен возвращать метод ? Какая-то половинчатость получается. |
|||
|
||||
| vasac |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
Документация, комментарии, phpdoc?
|
|||
|
||||
| MyDarkSide |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 21.3.2008 Репутация: нет Всего: -1 |
vasac, нет
слишком мягко тогда и интерфейсы не нужны |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
MyDarkSide, нужны.
|
|||
|
||||
| MyDarkSide |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 21.3.2008 Репутация: нет Всего: -1 |
nerezus, сказал как отрезал, даже возразить нечего
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
а если метод может возвращать null, объект класса TItem или объект класса TItemsCollection в зависимости от входящих параметров, то как ты представляешь "органичение типа"? интерфейсы используются не для ограничения логики работы класса(в том числе - ограничения на тип результата работы метода), а для того, чтоб гарантировать наличие некоторых методов. |
|||
|
||||
| MyDarkSide |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 21.3.2008 Репутация: нет Всего: -1 |
в этом случае я не буду указывать никаких ограничений с аргументами это делается так
а вот если метод должен однозначно вернуть мне например объект класса Database,я должен иметь возможность это указать так же как для аргументов:
если класс не может вернуть нужный объект пусть бросает исключение |
||||
|
|||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
а зачем такие сложности?
|
|||
|
||||
| youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
основная причина - да, чтобы гарантировать наличие методов. Ограничение типов входных аргументов тоже может быть полезно, но это не причина для использования интерфейсов |
|||
|
||||
| vasac |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 8 Всего: 36 |
Здесь указаны типы аргументов и результата. Но как без документации это может помочь опрделелить, что должна делать функция? |
|||
|
||||
| Simpliest |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
Эти указания типов не работают в PHP. допустимы только array, имя Interface, имя class |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
Simpliest, ты документацию когда последний раз читал? Это формальное описание. А не синтаксическое.
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
||||
|
||||
| Simpliest |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
Я как бы против этого и не возражал
Очень давно, больше года назад А что значит формальное описание? |
||||
|
|||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
Simpliest, это данные для программиста, а не для PHP. Задаются через phpdoc.
А в документации упоминается в каждой функции =) |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |