![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Все верно, только я вот сходу плохо могу придумать в каком месте в пхп такая гибкость может потребоваться, возможно просто из-за недостатка опыта в каких-то областях. А так, как фишка - да. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
BSCheshir |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 21.11.2012 Репутация: нет Всего: нет |
||||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Отсутствие смысла. Код ведь красив не сам по себе.
Вот смотри, мы же коллекцию объектов всегда используем в каком-то конкретном месте, и крайне редко это такая высокая абстракция, которая не знает ничего об интерфейсе объектов, кроме того, что у них есть конструктор. Добавив интерфейс установки параметров скопом, или же задав возможность конструктора класса получать параметры массивом. Ты сделаешь код более читаемым при той же функциональности. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
BSCheshir |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 21.11.2012 Репутация: нет Всего: нет |
т.е. с твоей точки зрения более красиво то же самое так записать?
Или каждый раз при создани каждого следующего экземпляра каждого класса (даже не фабрикой) нужно писать
Это сообщение отредактировал(а) BSCheshir - 27.11.2012, 11:24 |
||||
|
|||||
Fortop |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Я выше пример давал
Но ты невнимательно прочел про параметры массивом
Поскольку в коллекции у тебя чаще всего однотипные же объекты, число параметров у которых не отличается и принцип работы с которыми одинаков. Все индивидуальности с лихвой покрываются таким
Я потому и попросил вменяемый пример, где твой код можно использовать. Потому что не вижу каких-либо удобств от него. -------------------- Мир это Я. Живее всех живых. |
||||||
|
|||||||
BSCheshir |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 21.11.2012 Репутация: нет Всего: нет |
То что не возражаю по всем пунктам - может значить не только то, что невнимательно читаю, но и то, что согласен;) Но раз уж зашел разговор о параметрах в массиве.
Все отлично, даже более - можно ассоциативным массивом передавать -
Вопрос в том, что не подходит в применении к уже существующим классам, которые написаны без учёта того, что будет передаватся массив. Или, например, у одного передаётся ассоциативный массив первым параметром, у другого - список аргументов, у третьего - допустим, пусть будет массив из примера.
|
||||
|
|||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
BSCheshir, остался основной вопрос: зачем всё это нужно?
![]() вы изобрели вариант DI, однако полезность его не очевидна, а в проектах (фреймворках), где DI интенсивно эксплуатируется, есть свои решения, не самые плохие. |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Понятное дело что не подходит. Я не знаю сколько там у вас легаси кода, но на мой личный взгляд проще привести к общим интерфейсам, да и полезнее в будущем. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Fortop, Одно из применений - инициализация классов из файла конфигурации.
К примеру, класс mail, отсылающий сообщения, может быть стандартным mail'ом, SMTP транспортом "через mail-ru-google-com", skype и icq мессенджером и так далее. Инициализация каждого из них требует разных параметров, однако интерфейс всех классов сведен к фабричному mail'у. Параметры инициализации нужного транспорта - ассоциативный массив с параметрами в конфиге. С точки зрения юзера - нужно только выбрать нужный транспорт по названию. Вполне, на мой взгляд, кошерная схема. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Причем чужих классов транспорта С разнородными сигнатурами. И нужно это в недрах фреймворка где-то глубоко.
Жаль не нагуглю быстро статью. Там обсуждался вопрос выноса программируемых свойств сущностей в конфиги. Например, тот же Zend_Form может полностью задаваться в конфигурационном файле. Но как справедливо говорилось в статье, мы этим просто подменяем программирование в коде, на программирование в конфиге и зачастую не меньшим объемом, но другим синтаксисом... -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
спор о dependency injection сродни религиозному
![]() |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Лично мне Di удобен в таком варианте
Так что спора особо не вижу. P.S. как один из вариантов http://phemto.sourceforge.net/quick-start.php -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
BSCheshir |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 21.11.2012 Репутация: нет Всего: нет |
Fortop, т.е. всё-таки удобнее передавать параметры инициализации в конструктор, да? Или тут от предмета дискуссии зависит? ;)
|
|||
|
||||
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Вот так удобнее
-------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
xoptov |
|
||||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 16.2.2008 Репутация: нет Всего: нет |
Это не синтакис хитрый, это ты программист никакой... |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |