- 1
- 2
- 3
- 4
- 5
- 6
class Program implements ProgramProvider {
public static function getInstance() {
return new Program();
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+162
class Program implements ProgramProvider {
public static function getInstance() {
return new Program();
}
}
Гениальная реализация singleton!
разве будет работать?)
:)
http://alltheragefaces.com/img/faces/jpg/sad-forever-alone-face-only.jpg
От использования приватного конструктора эффект будет тот же самый
и если увидишь ебанутого, который зачем-то использует приватный конструктор вместо final, скажи, что он делает неправильно
Т.е. имеют смысл 2 разных юзкейса:
1. Класс сам следит за инстансами, наследоваться нельза автоматически (final не нужен) - наш Singleton.
2. Клиент создаёт инстансы, final нужен для уверенности в выполнении неких инвариантов - String из java (jvm полагается на то, что строки immutable).
PHP такой PHP...
Хотя... Именно говно-то там легко отлаживать. Большими кучами.
$program = Program::getInstance();
или того хуже
$someVar = Program::getInstance()->callSomeMethod();
Так что это скорее задумывалось как singleton