- 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!
VolDroN 29.03.2012 21:25 # 0
разве будет работать?)
mindfreakthemon 29.03.2012 22:52 # +2
Steve_Brown 30.03.2012 10:32 # +1
:)
Lure Of Chaos 30.03.2012 00:12 # +4
guest 30.03.2012 06:13 # −1
Vasiliy 30.03.2012 13:49 # −1
roman-kashitsyn 30.03.2012 14:15 # −1
http://alltheragefaces.com/img/faces/jpg/sad-forever-alone-face-only.jpg
Lure Of Chaos 30.03.2012 16:35 # +2
roman-kashitsyn 30.03.2012 18:23 # 0
Vasiliy 31.03.2012 09:54 # −1
Bert 30.03.2012 08:06 # 0
Lure Of Chaos 30.03.2012 09:20 # +1
roman-kashitsyn 30.03.2012 09:25 # +2
Bert 30.03.2012 10:18 # +1
roman-kashitsyn 30.03.2012 13:35 # 0
Bert 30.03.2012 13:56 # 0
roman-kashitsyn 30.03.2012 14:13 # 0
От использования приватного конструктора эффект будет тот же самый
Bert 30.03.2012 14:23 # 0
и если увидишь ебанутого, который зачем-то использует приватный конструктор вместо final, скажи, что он делает неправильно
roman-kashitsyn 30.03.2012 15:12 # 0
Т.е. имеют смысл 2 разных юзкейса:
1. Класс сам следит за инстансами, наследоваться нельза автоматически (final не нужен) - наш Singleton.
2. Клиент создаёт инстансы, final нужен для уверенности в выполнении неких инвариантов - String из java (jvm полагается на то, что строки immutable).
Bert 30.03.2012 15:45 # 0
roman-kashitsyn 30.03.2012 15:57 # 0
PHP такой PHP...
3.14159265 30.03.2012 20:31 # 0
Хотя... Именно говно-то там легко отлаживать. Большими кучами.
rO_ot 30.03.2012 12:51 # +3
Bert 30.03.2012 13:26 # 0
rO_ot 30.03.2012 15:17 # 0
Lure Of Chaos 30.03.2012 21:25 # 0
viktor_poltorak 30.03.2012 13:28 # 0
$program = Program::getInstance();
или того хуже
$someVar = Program::getInstance()->callSomeMethod();
Так что это скорее задумывалось как singleton
myaut 31.03.2012 00:14 # +1
guest8 09.04.2019 12:57 # −999