twin, это типичное внедрение зависимости через конструктор, для чего оно нужно, можно прочитать вот тут
http://ru.wikipedia.org/wiki/%D0%92%D0%BD%...%81%D1%82%D0%B8
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
У человека статический класс. Был дан совет не юзать статику. Причем тут зависимости?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
class Test
{
private static $db = 'DBRemote';
public static function testId()
{
return call_user_func(self::$db.'::query');
}
}
Цитата (twin @ 22.11.2014 - 13:37) |
SlavaFr
Цитата | Советую избавиться от статического метода query в DBRemote превратив его в обычный публичный метод oпределенного типа |
Чем обусловлен сей совет? Хотелось бы аргументов. |
SlavaFr,
Тоже интересно, чем не нравится в данном решении статический метод?
Сам лично замерял скорость работы статических методов и динамических. В среднем чаще динамические методы чуть быстрее, но вызываются чуть дольше. Но в цикле, когда объект уже инициализирован, то методы отрабатывают чуть быстрее.
Но на мой взгляд это не критично.
Цитата (twin @ 22.11.2014 - 15:14) |
У человека статический класс. Был дан совет не юзать статику. Причем тут зависимости? |
сделать код слабосвязанным, что бы потом не огребать с повторным использованием. Но если ТС хочется писать на статике, то ок, пусть пишет, это его дело.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации