`
ioryioryzhan
  • 浏览: 154877 次
  • 性别: 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会抛出一个错误,并跳到相应的异常处理函数中。使得调用构造函数失败。

 

分享到:
评论

相关推荐

    Java实现多种单例模式

    以下是Java实现的六种单例模式的详细解释: 1. 懒汉式(Lazy Initialization): 这种方式延迟了单例对象的初始化,直到第一次被请求时。例如,`SingleInstance1.java`可能就实现了这种方式。代码通常包含一个私有...

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

    在ActionScript3(AS3)中,我们可以轻松地实现单例模式。 AS3是一种面向对象的编程语言,广泛应用于Adobe Flash、Flex等平台的开发。为了在AS3中实现单例模式,我们通常会遵循以下几个步骤: 1. **创建类**:首先...

    ActionScript 3.0里使用单例模式

    在AS3中实现单例模式的核心思想是定义一个包含静态方法`getInstance()`的类,该方法负责创建并返回类的唯一实例。例如: ```as public class MyClass { private static var _instance:MyClass; public function ...

    场景管理单例模式1

    在这个示例中,我们将实现一个场景管理单例模式,用于管理游戏中的场景。 单例模式的定义 单例模式是一种创建型设计模式,使得类可以保证只有一个实例,并提供一个全局访问点来访问该实例。这个模式的主要目的是...

    Javascript实现单例模式

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

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

    下面我们将深入探讨如何在JavaScript中实现单例模式,以及它的工作原理。 首先,让我们来看看题目给出的单例模式实现代码: ```javascript function SingeInstance() { if (!SingeInstance._instance) { ...

    AS3设计模式

    1. **创建型模式**:这类模式主要关注对象的创建过程,如单例模式(Singleton)、工厂模式(Factory)和建造者模式(Builder)。单例模式确保一个类只有一个实例,常用于管理全局资源;工厂模式提供了一种创建对象的...

    Swift 实现单例 代理 通知 的设计模式 OC 跟 Swift 如何混编

    本篇文章将深入探讨如何在Swift中实现单例、代理和通知这三种常用的设计模式,并讲解如何在Swift与OC之间进行有效的混编,包括创建按钮和实现页面跳转。 首先,我们来看Swift中的单例设计模式。单例是一种确保类...

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

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

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

    在AS3中,单例模式常用于管理共享资源或配置信息,如Singleton.as示例。 2. **工厂模式**:提供一个接口来创建对象,但让子类决定实例化哪一个类。在AS3中,工厂模式可以用于动态创建不同类型的对象,如Simple...

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

    下面我们将详细探讨JavaScript中的单例模式及其实现方式。 首先,单例模式的核心思想是限制类的实例化过程,只允许实例化一次。在提供的代码示例中,`loop.js`通过立即调用的函数表达式(IIFE)来创建单例对象。这...

    as3 设计模式 单件模式 源码

    单例模式是软件设计模式中的一种经典模式,它在AS3(ActionScript 3)编程环境中同样适用。这种模式的主要目的是确保一个类只有一个实例,并提供一个全局访问点来获取这个唯一的实例。在AS3中,单例模式常用于管理...

    23种设计模式实例及说明大全(as3语言描述)

    1. 单例模式(Singleton):确保一个类只有一个实例,并提供一个全局访问点。在AS3中,可以利用静态变量和私有构造函数实现。 2. 工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪...

    PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】

    - **概念**:单例模式确保一个类只有一个实例,并提供一个全局访问点。在PHP中,虽然由于其特性,单例模式无法像其他语言那样严格限制多次实例化,但仍然可以通过设计使得实例化过程得到控制。 - **为何使用**:...

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

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

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

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

    as3设计模式及其css样式

    常见的设计模式包括单例模式、工厂模式、观察者模式等。在AS3中,这些模式可以帮助开发者构建更健壮、易于理解和维护的代码结构。 例如,单例模式确保一个类只有一个实例,并提供全局访问点。这对于管理共享资源如...

    flash actionscript3 as3 DesignPattern面向对象23种设计模式的实现源代码.zip

    1. **单例模式**:确保一个类只有一个实例,并提供一个全局访问点。在AS3中,可以使用静态私有构造函数和公共静态方法来实现。 2. **工厂模式**:定义一个创建对象的接口,让子类决定实例化哪个类。AS3中,可以使用...

    Flash ActionScript3 AS3 23种设计模式(全).Design Pattern

    - 单例模式:确保一个类只有一个实例,并提供一个全局访问点。 - 工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。 - 抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而无需指定...

    Javascript单例模式的介绍和实例

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

Global site tag (gtag.js) - Google Analytics