class User {
public static function singleton($Username = NULL) {
if (!isset(self::$Instance)) {
$c = __CLASS__;
self::$Instance = new $c($Username);
}
return self::$Instance;
}
...
}
D>class User {
D> public static function singleton($Username = NULL) {
D> if (!isset(self::$Instance)) {
D> $c = __CLASS__;
D> self::$Instance = new $c($Username);
D> }
D> return self::$Instance;
D> }
D>...
D>}
D>
D>Без комментариев...
а что за язык и где лопата?
единственное что я вижу — это то что $Username будет игнорироваться при последующих вызовах, ну так может так и задумано %)
Эх-эх-эх... Ламеры наступают...
A>единственное что я вижу — это то что $Username будет игнорироваться при последующих вызовах, ну так может так и задумано %)
Да. Именно. Так и было задумано: изгадить паттерн singleton и впихнуть его в класс "пользователь", который не является синглтоном по определению.
Вот если автор этого чуда, вернувшись из отпуска, задаст аналогичный вопрос про лопату, вот тут я действительно расстроюсь.
F> При чем тут ламеры? Я тоже лопаты не увидел. А то что там у вас этот класс User делает — мы совершенно без понятия, как там это должно быть.
Да просто название неудачное. Никакой это не singleton получается. Но если переименовать — вполне себе нормальный код.
Здравствуйте, Tony2k, Вы писали:
T>Да просто название неудачное. Никакой это не singleton получается. Но если переименовать — вполне себе нормальный код.
Да, без более широкого контекста степень кривизны похоже действительно не видна. Вызов singleton($Username) используется для поднятия текущего юзера из сессии (конструктор User выполняет запрос к базе), а в остальных местах по коду разбросан вызов singleton() без параметров. Так что вполне себе кривой синглтон, на самом деле.
Здравствуйте, dimgel, Вы писали:
D>Здравствуйте, Tony2k, Вы писали:
T>>Да просто название неудачное. Никакой это не singleton получается. Но если переименовать — вполне себе нормальный код.
D>Да, без более широкого контекста степень кривизны похоже действительно не видна. Вызов singleton($Username) используется для поднятия текущего юзера из сессии (конструктор User выполняет запрос к базе), а в остальных местах по коду разбросан вызов singleton() без параметров. Так что вполне себе кривой синглтон, на самом деле.
OMG.
С этого надо было начинать, просто код сам по себе просто производит впечатление, что он для другого, и метод не так назван. А так жесть, конечно. Выделенное вообще .
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, dimgel, Вы писали:
D>Здравствуйте, Tony2k, Вы писали:
T>>Да просто название неудачное. Никакой это не singleton получается. Но если переименовать — вполне себе нормальный код.
D>Да, без более широкого контекста степень кривизны похоже действительно не видна.
Такие вещи надо с коллегами по работе обсуждать.
Обычная рабочая рутина. Ничего забавного и смешного.
Здравствуйте, bkat, Вы писали:
B>Такие вещи надо с коллегами по работе обсуждать.
Коллеги с обсуждений съезжают. Боятся, что оно рассыпется при первом же касании. Что неудивительно, ибо весь код написан в лучших традициях динамики так, что они даже не в состоянии выяснить, используются ли где поля класса, потому что присваиваются эти поля без объявлений, и поиску строки по всему коду они не верят.
B>Обычная рабочая рутина. Ничего забавного и смешного.
Полностью согласен, ничего смешного. Крайне тоскливо с таким кодом работать и не иметь возможности привести его в порядок, потому что "насяльника запрещает".