![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2006
Сообщений: 256
|
Цитата:
__________________
:emocry: |
|
|||||
|
Banned
[+1 08.05.08]
[+4 14.04.08] [+1.3 02.05.08] Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
|
Цитата:
|
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
Цитата:
var boo:ClassA = new ClassA(true); trace("is it singleton? -"+foo == boo); Во многих случаях можно спорить о том что нравится/не нравится. Это называется холивар. Холивар обычно заканчивается, если кто-то способен доказать свою точку зрения примером. Например, как тот, что я написал.
__________________
http://realaxy.com |
|
|||||
|
Banned
[+1 08.05.08]
[+4 14.04.08] [+1.3 02.05.08] Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
|
да я согласен что при тру.. кривость есть.. но зачем писать в данном контексте тру разработчику.. ну вообще то можно конечно ссылатся на того кто вызывает.. если не сам класс.. то ошибка.
Ясн... Iv спасибо. |
|
|||||
|
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Холивар - это обычно что-то vs что-то. А Синглтон - он против кого?
В смысле, кто у него прямые конкуренты? Вот если хочется чего-то глобааального такого, то выбор не велик: или синглтон, или статические методы или методы пекеджа (что по сути те же статические методы). Статические методы имеют свои минусы. Совсем отказаться от глобального доступа - тоже не всегда хорошо. |
|
|||||
|
стервочка (я мужик)
|
Холивар - это когда писками меряются. например я это уже 1й зачаток холивара в данном топе. может хоть один разовьём? а скучно.
|
|
|||||
|
Почитав книжку Foe, Object-Oriented Actionscript 3.0 (2007) долгое время использовал их версию синглтона
package {
public class Singleton {
private static var instance:Singleton;
private static var allowInstance:Boolean;
public function Singleton() {
if(!allowInstance) {
throw new Error("Error: use Singleton.getInstance() instead of new keyword");
}
}
public static function getInstance(fg):Singleton
{
if(instance == null) {
allowInstance = true;
instance = new Singleton();
trace("Singleton instance created");
allowInstance = false;
} else {
trace("Singleton instance already exists");
}
return instance;
}
public function doSomething():void {
trace("doing something");
}
}
}
В каких конкретных случаях из практики использование этого паттерна необходимо? И какие причины против его использования?
__________________
Сам себе репортер |
|
|||||
|
"необходимость" в программировании возникает вообще крайне редко... одну и ту же задачу можно решить множеством способов. Другое дело удобство, расширяемость, сопровождение, инкапсуляция, повторное использование кода и т.д. и т.п....
![]()
__________________
Кто может делать - делает, кто не может делать - учит, кто не может учить - управляет... |
|
|||||
|
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Ну взять, скажем, опции: громкость музыки и эффектов, режим оконный/полноэкранный, качество высокое/низкое, режим паузы, режим mute и так далее.
Частенько нужны из самых разных и отдалённых концов приложения. Самый простой способ - сделать нечто с глобальным доступом. Одиночка тут вполне годиться. |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
terbooter, вообще, синглтон сейчас многие относят к антипаттернам. И, наверное, это правильно.
Я думаю, что правильно его относить к антипаттернам, но не правильно совершенно от него отказываться. Так сложилось исторически. Это как использование _root в AS1-2. Синглетон объявили паттерном (т.е. рекомендуемым к применению шаблоном), но его используют в целях, для которых он совершенно не предусмотрен. Реальное назначение синглетона - предоставлять доступ к единственному экземпляру класса и не допускать возможность создания второго. Как правило, ошибочное использование синглетона - организация глобального доступа к объекту. Так вот, синглетон используют для организации глобального доступа раз в 100 чаще, чем в целях, которым он должен служить. Объявляя синглетон антипаттерном можно добиться того, что люди будут куда внимательнее относиться к его использованию.
__________________
http://realaxy.com |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:54. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|