![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| youri |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
у тебя какое-то субъективно-негативное отношение к этой статье. Может потому, что не любишь TDD? Да, они для себя выбрали решение, но тем не менее они рассказали про другие варианты как это осталось столько же? Была куча звездных объектов, выполненных в качестве Sinleton'ов, вместо них остался один toolkit
не думаю, что это распространенная задача в TDD. У нас есть тесты. Можно исправить tool и тех, кто его использует. Но даже если мы хотим это оставить на потом, ничто не мешает добавить нам исправленный tool под другим именем в toolkit вот, например, статическая зависимость
т.е. Server напрямую обращается к объекту. Но можно избавить его от лишней информации
при этом мы сможем не меняя класс Server передать ему другой объект. Для одного клиента это не так важно, но когда клиентов много... |
||||||
|
|||||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
так это здесь получилось копирование объекта?
а зачем? пусть один объект для всех идёт |
|||
|
||||
| youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
это не копирование, обьекты в php передаются по ссылке (упрощенно)
|
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
всегда, что ли?
|
|||
|
||||
| youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
в 5-ой версии
|
|||
|
||||
| nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
|
||||
|
|||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
||||
|
||||
| youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
зато у bars80080 одна награда есть
|
|||
|
||||
| nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
|
||||
|
|||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
||||
|
||||
| Simpliest |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
Речь шла о конкретном объекте. Для приложения пачка Singleton (почему появилась эта самая пачка - тот еще вопрос) хуже чем один Service Locator - это очевидно. А потом унаследовать класс и переопределить метод где мы вызывали этот самый tool на toolkit? Старый класс
Новый класс
Не проще ли
Почуствуйте разницу и уровень завязанности кода. |
||||||
|
|||||||
| youri |
|
||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
минутку. Где шла речь об одном объекте? Класс Server
упоминается при описании характера зависимостей и в том же разделе указывается один из вариантов обеспечения инверсии зависимостей
дальше идет более подробное обсуждение. В этом же разделе особого сравнения нету
вы вырвали фразу из контекста. Я говорил об этом как о временном решении. А вообще, конечно, в данной ситуации dependency injection удобнее. Но такой подход имеет и недостатки
Это сообщение отредактировал(а) youri - 6.10.2009, 09:19 |
||||||||||||
|
|||||||||||||
| Simpliest |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
Да вот же... вы тут их и привели. Что непонятного? Был класс Server с 1й статической зависимостью
Мы показываем пример (используя другой класс), как избегать статических зависимостей, и... о чудо
приводим пример с Client с 1й статической зависимостью... Я не понимаю |
||||
|
|||||
| youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: 6 Всего: 16 |
да, не внимательно прочитал тот раздел. Там приводиться пример статической зависимости класса Server от класса Log. Затем сравниваются статические и динамические зависимости. Затем приводиться примеры избавления от статических зависимостей (с предыдущими примерами практически не связаны). Пример для Service Locator показывает как избавиться для некоторого абстрактного класса от статической зависимости от одного из "звездных" объектов - класса Server. В чем проблема? Было много "звездных" объектов и статических зависимостей от них. В результате получили одну статическую зависимость от Service Locator
|
|||
|
||||
| Simpliest |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
Проблема в подаче и материале. Избавиться от статических зависимостей и Уменьшить число статических зависимостей Разные вещи. Не так ли? |
|||
|
||||
![]()
|
| Правила форума "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. |