`
ioryioryzhan
  • 浏览: 153783 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

as3实现单例模式

阅读更多

由于As3不允许private,protected的构造函数,所以要想方法防止用构造函数来创建实例。从别人blog中看到一个好方法来做到这一点。直接上代码:

package {
       public class Singleton {
           private static  var _singleton:Boolean=true;
           private static  var _instance:Singleton;
           public function Singleton() {
                if (_singleton) {
                     throw new Error("只能用getInstance()来获取实例");
                }
           }
           public static function getInstance() {
                if (!_instance) {
                      _singleton=false;
                      _instance=new Singleton();
                      _singleton=true;
                 }
                 return _instance;
           }
      }
}

   这个方法巧妙地利用了一个private的变量_singleton来做到这一点。由于_singleton无法从外面访问,所以也无法从利用构造函数来得到实例,只能通过getInstance()来获得。同时getInstance()被调用一次以后,_singleton便被再次设置成true,从而又保证了单例。这个方法不错。

 

  这里还有一个语法上的小细节,便是构造函数内的throw语句。throw会抛出一个错误,并跳到相应的异常处理函数中。使得调用构造函数失败。

 

分享到:
评论

相关推荐

    设计模式之单例模式(AS3实现)

    用ActionScript3实现的单例模式

    Javascript实现单例模式

    单例模式也称作为单子模式,更多的也叫做单体模式。为软件设计中较为简单但是最为常用的一种设计模式。 单例模式的介绍:  在应用单例模式时,生成单例的类必须保证只有一个实例的存在,很多时候整个系统只需要拥有...

    Flask框架单例模式实现方法详解

    本文实例讲述了Flask框架单例模式实现方法。分享给大家供大家参考,具体如下: 单例模式: 程序运行时只能生成一个实例,避免对同一资源产生冲突的访问请求。 Django admin.py下的admin.site.register() , site...

    javascript 单例模式演示代码 javascript面向对象编程

    JS单例模式 div{height:100px; width:100px; background:#CCC; border:#000 1px solid;} 你是?(单例) 你是?(普通) [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] loop.js是一个单例模式的js类://一开始就...

    as3.0设计模式代码实现汇总

    有源码的23种as3 0设计模式案例 单例 工厂 策略 装饰模式等

    javascript单例模式的简单实现方法

    本文实例讲述了javascript单例模式的简单实现方法。分享给大家供大家参考。具体实现方法如下: function SingeInstance(){ if(!SingeInstance._instance) SingeInstance._instance=this; return SingeInstance._...

    javascript设计模式 – 单例模式原理与应用实例分析

    本文实例讲述了javascript设计模式 – 单例模式。分享给大家供大家参考,具体如下: ...为了节约资源,提高性能,需要保证实例对象的唯一性,就可以采用单例模式实现。使用单例模式要注意:1.某个类只能

    《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析

    本文实例讲述了Javascript面向对象程序设计单例模式原理与实现方法。分享给大家供大家参考,具体如下: 1.单例模式概述 源自百度百科对于单例模式的定义: 单例模式的意思就是只有一个实例。单例模式确保某一个类...

    Javascript单例模式的介绍和实例

    本文将会介绍Javascript中的单例模式,在传统开发工程师眼里,单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例...

    原生javascript单例模式的应用实例分析

    本文实例讲述了原生javascript单例模式的应用。分享给大家供大家参考,具体如下: 总体原则:开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭。在程序需要进行扩展的时候,不能去修改原有 ...

    详解python单例模式与metaclass

    单例模式的实现方式 将类实例绑定到类变量上 class Singleton(object): _instance = None def __new__(cls, *args): if not isinstance(cls._instance, cls): cls._instance = super(Singleton, cls).__new__...

    Think in ActionScript 3.0Ⅰ Ⅱ Ⅲ汇总

    4.7.4 单例模式(Singleton Pattern) 5. 多态(Polymorphism) 5.1 多态的概念 5.2 多态存在的三个必要条件 5.3 TestPolymoph.as —— 多态的应用,体会多态带来的好处 5.4 TestPolymoph 内存分析 5.5 多态的好处 ...

    day020-继承加强和设计模式代码和笔记.rar

    通过单例模式获取到对象后。就是只有一个对象的类 方法全部都是非static修饰的,调用方式:对象名.方法名(...); 4. 工具类命名: XxxUtil、XxxUtils、XxxTool、XxxTools 3. jar 包 (掌握)...

    Javascript模块模式分析

    Douglas Crockford已经传授了一个有用的单例模式(singleton pattern)实现此规则,我认为他的模式有益于你基于YUI的那些应用。Douglas叫它模块模式(module pattern)。它是如下工作的: 创建一个命名空间对象:...

    Javascript的一种模块模式

    Douglas Crockford已经传授了一个有用的单例模式(singleton pattern)实现此规则,我认为他的模式有益于你基于YUI的那些应用。Douglas叫它模块模式(module pattern)。它是如下工作的: 1、创建一个命名空间对象:...

    大型网页游戏架构书

    单例模式; 外观模式. Decorator 模式: 五.事件管理(GameEvent 包) 划分不同的情节,用不同的类来描述情节。包括不同的任务。 初步想法:写出不同的事件,每一个事件就关于一个故事情节,引发场景动画,引发一些...

    javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象

    当然,如您所知,我们可以改进创建的方式,比如使用全局变量来缓存一个实例(客户端的单例模式?!),对于同步方式的通信,这是很有效的,但是这样的方式对于异步通信会出现问题,因为没有了进程的堵塞,用户可能...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    综上所述,“认我测”在线认证检测系统,率先填补了认证检测领域移动端的空缺,提供了Web浏览器+移动端的双端访问模式,给用户提供了多种访问途径,真正实现了用户和检测机构的随时随地在线下单检测。 关键词:...

    PaperTest Q&A笔试综述

    3)单例模式 1面a i1面 42 4)策略模式…… 主主主基主主主主 42 5)MVC……, 43 6) PIMPL….... “4 .43 7)RAIL 44 4 STL 44 1) Vector.… 44 2]upper_ bound&lower_bound 45 mAp 45 数据...

Global site tag (gtag.js) - Google Analytics