Это хорошо работает как Singleton в ActionScript? т.е. есть ли какие-либо проблемы, о которых я должен знать, и верно ли, что в этом случае будет создан только один экземпляр AVManager:Очень простой синглтон?
Обратите внимание, что я получаю ожидаемый результат (только одно время «созданного экземпляра в первый раз» и номера соответствуют последовательности):
экземпляров впервые! 1
FILE 1: 2
FILE 2: 3
и, наконец, 4
Здесь находятся файлы ....
AV_CONFIG.as:
package {
public class AV_CONFIG {
public static var AVM:AVManager = new AVManager();
}
}
AVManager.as:
package {
import flash.events.EventDispatcher;
public class AVManager extends EventDispatcher {
public var someConstantData:uint = 1;
public function AVManager() {
trace('instantiated first time!', someConstantData);
}
}
}
Тогда:
File1.as:
package {
import AV_CONFIG;
import flash.display.Sprite;
public class File1 extends Sprite {
public function File1() {
AV_CONFIG.AVM.someConstantData++
trace('FILE 1:', AV_CONFIG.AVM.someConstantData);
}
}
}
File2.as:
package {
import AV_CONFIG;
import flash.display.Sprite;
public class File2 extends Sprite {
public function File2() {
AV_CONFIG.AVM.someConstantData++
trace('FILE 2:', AV_CONFIG.AVM.someConstantData);
}
}
}
Main.as (The DocumentClass):
package {
import AV_CONFIG;
import flash.display.Sprite;
public class Main extends Sprite {
public function Main() {
var f1:File1 = new File1();
var f2:File2 = new File2();
AV_CONFIG.AVM.someConstantData++
trace('and finally', AV_CONFIG.AVM.someConstantData);
}
}
}
Что такое Singleton, который реализует интерфейс? Невозможно обеспечить альтернативную реализацию, поскольку клиенты извлекают конкретный экземпляр процедурно, а не предоставляют ему. –
ok ... тогда вы могли бы заменить «const» на функцию, нет? – OXMO456
Он использует const для обеспечения глобального доступа, который является антитезой OOP, но я думаю, что const будет работать лучше, чем вызов статической функции, если вы хотите, чтобы мое честное мнение о том, какая форма цианида делает самый здоровый завтрак. –