![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
Идея понятна, но дело совершенно не в этом.
Прелесть синглетона в том, что можно его быстро переделать в обычный класс и обратно. Собственно это одна из причин, по которой не стоит увлекаться статическими методами.
__________________
http://realaxy.com |
|
|||||
|
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Во.
Есть интерфейс: Вот класс, который использует синглтон: package {
public class User {
public function User() {
var doer1:IDoer = new Singleton();
var doer2:IDoer = new Singleton();
doer1.doSomething();
doer2.doSomething();
}
}
}
package {
public class Singleton implements IDoer {
private var realDoer:IDoer;
public function Singleton() {
realDoer = RealSingleton.getInstance();
}
public function doSomething():void {
realDoer.doSomething();
}
}
}
internal class RealSingleton implements IDoer {
private var counter:int = 0;
private static var instance:RealSingleton;
public static function getInstance():RealSingleton {
if (!instance) instance = new RealSingleton();
return instance;
}
public function doSomething():void {
trace(counter+": Hello world!");
counter++;
}
}
Используют как обычный класс. Таким образом, если мы решим отказаться от использования синглтона (например, потребуется несколько соединений к серверу), то меняем только один файл. Для остальных классов ничего не изменилось. То есть уровень абстракции выше, переделка в обычный класс совершенно прозрачна. |
|
|||||
|
стервочка (я мужик)
|
Цитата:
|
|
|||||
|
стервочка (я мужик)
|
WindWalker, а нафига делать синглтон, о котором никто не узнает? это уже не синлтон получает, а фигня какая-то.
|
|
|||||
|
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Это называет ин-кап-су-ля-ци-я.
Чем меньше мы знаем о внутреннем устройстве, тем легче живётся и крепче спится. Про класс мы знаем. Инстанциируем, используем. А про то, что он реализован через синглтон - не знаем и знать не хотим. И если когда-нибудь он волшебным образом перестанет быть синглтоном (с сохранением интерфейса, логики и функциональности), то нас это никак не будет волновать. Хочу обратить внимание, что класс-пользователь не использует статические методы и не содержит никаких упоминаний getInstance(). Последний раз редактировалось WindWalker; 19.03.2008 в 16:37. |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
BlooDHounD, можно поподробнее, с моими цитатами?
__________________
http://realaxy.com |
|
|||||
|
стервочка (я мужик)
|
Цитата:
Цитата:
WindWalker, мне всё равно как Вы это называете просто я не пониманию, зачем усложнять структуру приложения, даже если программист никогда не увидит внутренности по мне так проще вместо создания "непоймикакогосингтона" написать как-нить так:
и работает и быстрее, и нету никаких инстансов внутри. |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
BlooDHounD, мне блевать хочется от такого общения как сейчас с тобой.
Научись отстаивать свою точку зрения, а не прятаться за общими фразами.
__________________
http://realaxy.com |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 467
|
Iv, необращай внимания на тех, кто до этого еще не дорос, а то зря только время потратиш... я хоть посмеялся, пока читал посты отдельных пользователей))
|
|
|||||
|
стервочка (я мужик)
|
Iv, ты меня расстраиваешь
я давно, привык что ты общаешься сам собой, так что ты уж меня прости, что не цитирую тебя очень часто. мне кажется я чётко расписал в чём ты не прав. извини, что не приготовил тебе нормальный завтрак. не могу тебе сейчас помочь с пищеварением. |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:39. |
|
|
« Предыдущая тема | Следующая тема » |
|
|