今天看到了 N神AS研究所的文章【AS3与设计模式】 Singleton Pattern (单例模式)http://www.nshen.net/blog/article.asp?id=511;
感觉非常有用,使用了一下,主要在存数据的上面还有些不明白,通过研究,自己找到了一中方法.
改写了其中 singleton 类:
_____________start_______________
package singleton
{
public class Singleton
{
private static var _instance:Singleton;
private var singletonInstance:SingletonEnforcer;
public function Singleton(singletonEnforcer:SingletonEnforcer) {
if(singletonEnforcer==null){
throw new Error("singletonEnforcer");
} else {
singletonInstance = singletonEnforcer;
}
}
public static function getInstance():Singleton {
if(Singleton._instance == null) {
Singleton._instance = new Singleton(new SingletonEnforcer());
}
return Singleton._instance;
}
public function doSomething():void {
trace(singletonInstance.gogo());
trace("SOMETHING!");
}
}
}
class SingletonEnforcer {
private var holy:int = 1;
public function gogo():int{
holy++;
return holy;
}
}
__________________end_____________
其中 Designpatterns类不变:
_____________start_______________
package {
import flash.display.Sprite;
import Singleton;
public class Designpatterns extends Sprite
{
public function Designpatterns()
{
Test_Singleton()
}
public function Test_Singleton():void{
var s:Singleton=Singleton.getInstance()
s.doSomething();
/*
使用构造函数创建实例会报错
var s1:Singleton=new Singleton()
s1.doSomething()
*/
}
}
}
__________________end_____________
这是个人想法,不知道其他应用者是怎么实现的..
转自:http://hi.baidu.com/moubang/blog/item/d6e64d2ad14aec98023bf62b.html
********author:ycccc8202**********3.0的单例模式*************/
package {
import flash.display.Sprite;
public class SingletonExample extends Sprite
{
public function SingletonExample()
{
var single1:Singleton=Singleton.getInstance()
var single2:Singleton=Singleton.getInstance()
trace(single1==single2)
try{
var single:Singleton=new Singleton()}
catch(e:Error){
trace(e)}
}
}
}
class Singleton
{
private static var __INSTANCE:Singleton
private static var __ALLOW:Boolean=false
public function Singleton(){
if(__ALLOW==false){
throw new Error("不能通过new创建实例!");
}
return;
}
public static function getInstance():Singleton{
if(__INSTANCE==null){
__ALLOW=true
__INSTANCE=new Singleton()
__ALLOW=false
}
return __INSTANCE
}
}
/**************************************************/
/****AS3主要是由于构造函数必须为public,所以用throw进行了设置****/
分享到:
相关推荐
Singleton pattern单例模式应用
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个...
java Singleton单例模式 java Singleton单例模式
在Java应用中,单例对象能保证在一个...3、有些像交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了,只有使用单例模式,才能保证核心交易服务器独立控制整个流程。 CSDN代码的详细解释。
此示例展示了Qml 的单例模式(类似全局对象,只生成一次实例,可全局使用) surfsky.cnblogs.com
NULL 博文链接:https://linxingliang.iteye.com/blog/1217811
设计模式C++学习之单例模式(Singleton)
php /** * 单例模式 * * 保证一个类仅有一个实例,并提供一个访问它的全局访问点 * */ class Singleton { static private $_instance = null; private function __construct() { } static public function ...
4、单例模式(Singleton Pattern) 用意:仅允许生成一个对象时
java设计模式,单例模式的不同实现方式
NULL 博文链接:https://lym6520.iteye.com/blog/695374
设计模式总结-模板设计模式,单例模式(singleTon)
单例设计模式Singleton1
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 学习demo
单例模式 Singleton 单例模式线程安全问题和拓展
singleton单例模式1
Head First 设计模式 (五) 单件模式(Singleton pattern) C++实现
本文实例讲述了JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能。分享给大家供大家参考,具体如下: 单例模式 单例模式的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中...
Android Singleton单例模式运用详解
Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)