PDA

Просмотр полной версии : Вопрос о конструкторе классов в AS3.0


Гробовщик
15.03.2007, 08:07
Скажте, конструктор класса может быть только public? В предыдущем AS он мог быть и private и это позволяло реализовать шаблон sinleton. В этой версии AS флекс говорит, что конструктор только паблик...((

vooparker
15.03.2007, 09:55
Да ты абсолютно прав, конструктор может быть только public и никак иначе. Насчет паттерна Одиночка, вот здесь можно посмотреть на реализацию этого паттерна на AS3 http://www.onflex.org/code/

etc
15.03.2007, 13:13
Просто надо дополнительные условия поставить и все. Хотя да, public only. Не знаю зачем, видимо жертва стандартизации.

BlooDHounD
15.03.2007, 13:17
есть ещё так называемые приватные классы :) можно в контркторе поставить параметром экземпляр такого класса. его сможет реализовывать только класс одиночка.

Это всё в одном файле надо написать, кто не в курсе...package asd {

public class Singletone {

private static var _instance:Singletone;

public static function getInstance():Singletone {
if (!_instance) _instance = new Singletone(new SingletoneArgument());
return _instance;
}

public function Singletone(arg:SingletoneArgument) {
}

}
}

internal class SingletoneArgument {
}Ни у кого кроме Singletone не будет доступа к SingletoneArgument. Соответственно конструктор может вызвать только он сам.

miramax
15.03.2007, 14:54
Почему тему синглтонов так обсуждают ?
Неужели так трудно юзать приватную статическую переменную ?

BlooDHounD
15.03.2007, 16:59
miramax, обсуждают не приватную статическую переменную, а публичный конструктор. читать надо внимательно.