由于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实现的六种单例模式的详细解释: 1. 懒汉式(Lazy Initialization): 这种方式延迟了单例对象的初始化,直到第一次被请求时。例如,`SingleInstance1.java`可能就实现了这种方式。代码通常包含一个私有...
在ActionScript3(AS3)中,我们可以轻松地实现单例模式。 AS3是一种面向对象的编程语言,广泛应用于Adobe Flash、Flex等平台的开发。为了在AS3中实现单例模式,我们通常会遵循以下几个步骤: 1. **创建类**:首先...
在AS3中实现单例模式的核心思想是定义一个包含静态方法`getInstance()`的类,该方法负责创建并返回类的唯一实例。例如: ```as public class MyClass { private static var _instance:MyClass; public function ...
在这个示例中,我们将实现一个场景管理单例模式,用于管理游戏中的场景。 单例模式的定义 单例模式是一种创建型设计模式,使得类可以保证只有一个实例,并提供一个全局访问点来访问该实例。这个模式的主要目的是...
单例模式也称作为单子模式,更多的也叫做单体模式。为软件设计中较为简单但是最为常用的一种设计模式。 单例模式的介绍: 在应用单例模式时,生成单例的类必须保证只有一个实例的存在,很多时候整个系统只需要拥有...
下面我们将深入探讨如何在JavaScript中实现单例模式,以及它的工作原理。 首先,让我们来看看题目给出的单例模式实现代码: ```javascript function SingeInstance() { if (!SingeInstance._instance) { ...
1. **创建型模式**:这类模式主要关注对象的创建过程,如单例模式(Singleton)、工厂模式(Factory)和建造者模式(Builder)。单例模式确保一个类只有一个实例,常用于管理全局资源;工厂模式提供了一种创建对象的...
本篇文章将深入探讨如何在Swift中实现单例、代理和通知这三种常用的设计模式,并讲解如何在Swift与OC之间进行有效的混编,包括创建按钮和实现页面跳转。 首先,我们来看Swift中的单例设计模式。单例是一种确保类...
本文实例讲述了Flask框架单例模式实现方法。分享给大家供大家参考,具体如下: 单例模式: 程序运行时只能生成一个实例,避免对同一资源产生冲突的访问请求。 Django admin.py下的admin.site.register() , site...
在AS3中,单例模式常用于管理共享资源或配置信息,如Singleton.as示例。 2. **工厂模式**:提供一个接口来创建对象,但让子类决定实例化哪一个类。在AS3中,工厂模式可以用于动态创建不同类型的对象,如Simple...
下面我们将详细探讨JavaScript中的单例模式及其实现方式。 首先,单例模式的核心思想是限制类的实例化过程,只允许实例化一次。在提供的代码示例中,`loop.js`通过立即调用的函数表达式(IIFE)来创建单例对象。这...
单例模式是软件设计模式中的一种经典模式,它在AS3(ActionScript 3)编程环境中同样适用。这种模式的主要目的是确保一个类只有一个实例,并提供一个全局访问点来获取这个唯一的实例。在AS3中,单例模式常用于管理...
1. 单例模式(Singleton):确保一个类只有一个实例,并提供一个全局访问点。在AS3中,可以利用静态变量和私有构造函数实现。 2. 工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪...
- **概念**:单例模式确保一个类只有一个实例,并提供一个全局访问点。在PHP中,虽然由于其特性,单例模式无法像其他语言那样严格限制多次实例化,但仍然可以通过设计使得实例化过程得到控制。 - **为何使用**:...
本文实例讲述了javascript设计模式 – 单例模式。分享给大家供大家参考,具体如下: ...为了节约资源,提高性能,需要保证实例对象的唯一性,就可以采用单例模式实现。使用单例模式要注意:1.某个类只能
本文实例讲述了Javascript面向对象程序设计单例模式原理与实现方法。分享给大家供大家参考,具体如下: 1.单例模式概述 源自百度百科对于单例模式的定义: 单例模式的意思就是只有一个实例。单例模式确保某一个类...
常见的设计模式包括单例模式、工厂模式、观察者模式等。在AS3中,这些模式可以帮助开发者构建更健壮、易于理解和维护的代码结构。 例如,单例模式确保一个类只有一个实例,并提供全局访问点。这对于管理共享资源如...
1. **单例模式**:确保一个类只有一个实例,并提供一个全局访问点。在AS3中,可以使用静态私有构造函数和公共静态方法来实现。 2. **工厂模式**:定义一个创建对象的接口,让子类决定实例化哪个类。AS3中,可以使用...
- 单例模式:确保一个类只有一个实例,并提供一个全局访问点。 - 工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。 - 抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而无需指定...
本文将会介绍Javascript中的单例模式,在传统开发工程师眼里,单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例...