`

单例遇到的问题

    博客分类:
  • flex
 
阅读更多

 

今天一个单例的程序出了问题,分析一下。代码如下:

这是调用回调函数的代码,调用完注册回调函数,即将回调函数设为默认

 

        //如果是结果事件,结果回调函数处理
        public function result(data:Object):void {
            var event:ResultEvent = data as ResultEvent;
            resultCallbackFunction(event.result);
	    resultCallbackFunction = defaultFunction;			
        }

 每次方法调用前会注册回调函数

        //设置结果回调函数
        public function setResultCallbackFunction(resultCallback:Function = null):void {
            if (resultCallback == null) {
                resultCallbackFunction = defaultFunction;
            }
            else {
                resultCallbackFunction = resultCallback;
            }
        }

 问题出现了,我有一个程序,是调用接口的回调函数中再去调用接口

举个例子是这样的

 

[Test]
public function testGetAccountInfo():void
{			
			

	//接口回调中调新接口
	accountService.getAccountInfo("13666666666","012345",resultItemResultHandler2,faultResultHandler);
			

}
public function resultItemResultHandler2(data:Object):void{
		testGetHoldNumberList();
}
[Test]
public function testGetHoldNumberList():void
{				
	accountService.getHoldNumberList("1","41000000","02","012231",resultItemResultHandler,faultResultHandler);
}

这时问题出现了第一个接口回调过来时 执行

 

 resultCallbackFunction(event.result);

resultItemResultHandler2

于是

testGetHoldNumberList()

方法执行了,也会走

setResultCallbackFunction

但设置完后,又执行了

resultCallbackFunction = defaultFunction;

于是之前的回调函数注册就没用了。大家使用单例时要注意了。

 

 

分享到:
评论

相关推荐

    JS 设计模式之:单例模式定义与实现方法浅析

    本文实例讲述了JS 设计模式之:单例模式定义与实现方法。分享给大家供大家参考,具体如下: ...在日常的开发中,我们遇到的单例模式可能有:Vuex 中的 Store,Vue 的根实例,任何导出单个对象的 ES6 模块等。 字面量

    单例模式源码

    这是面试中遇到的一个单例描述,帮助通过面试

    react 创建单例组件的方法

    在开发过程中,遇到个问题:由于我们的系统是多页面的,所以每次切换页面,都会去请求后端的消息接口。。有一定的性能损耗。 因为是多页面系统,使用单例组件貌似也没啥意义(不过是个机会学习学习单例组件是怎么写...

    JAVA多线程并发下的单例模式应用

    单例模式应该是设计模式中比较简单的一个,也是非常常见的,但是在多线程并发的环境下使用却是不那么简单了,今天给大家分享一个我在开发过程中遇到的单例模式的应用。 首先我们先来看一下单例模式的定义: 一个类有...

    设计模式(一)——单例模式

    我们经常遇到这样的场景,线程A和线程B对同一个对象执行操作,但是在A里面new了后,B里面不便取,使的A,B对象是同一个对象,我们就会使用单例模式了。在Android中我们常用于数据库操作,蓝牙命令控制,以及一些工具...

    C++单例模式的实例详解

    但是当我们遇到了纯粹的面向对象范式中,这一点可能就只能是通过单例模式来实现了,可能这也正是很多公司在招聘 Java 开发人员时候经常考察单例模式的缘故吧。 单例模式在开发中非常有用,具体使用在

    单例模式.txt

    这是在平时积累的工厂模式,简单工厂是在oop中经常遇到的

    线程问题出现与解决

    线程问题总结:多线程实现方式、线程控制、多线程安全问题以及解决方法、单例懒汉式的线程安全问题、死锁出现的原因

    php单例模式实现(对象只被创建一次)

    是我在php面试题中遇到的一道试题,单例模式按字面来看就是某一个类只有一个实例,这样做的好处还是很大的,比如说数据库的连接,我们只需要实例化一次,不需要每次都去new了,这样极大的降低了资源的耗费

    iOS 横屏打开相册例子

    ipad开发的时候遇到遇到一个问题,项目需要横屏,但是打开相册的时候,相册只支持竖屏显示,所以程序就会崩掉。在网上找了很久,找到一个解决方案。就是在appDelegate里面重新支持屏幕显示方式,写一个单例类来管理...

    Java面试可能问的问题.docx

    面试遇到的问题 1.spring的AOP/IOC怎么用 Ioc: https://blog.csdn.net/qq_42709262/article/details/81951402 Aop: https://blog.csdn.net/q982151756/article/details/80513340 2.设计模式 单例模式 策略模式 ...

    java中所遇到的各种设计模式

    适配器模式 工厂模式 代理模式 单例模式

    Apache的对象池化工具commons-pool

    当我们的应用中创建一个十分最重量...不过如果遇到并发量十分大的情况下,并发访问的问题也就出现了。OK即使您不用加锁synchronized,利用ThreadLoacl进行安全变量的副本,但是维持变量副本的资源也是需要消耗资源的。

    当 Kubernetes 遇到 GPT:利用编程模型的秘诀,让你省时省力!

    一说到编程模型或者开发模式,大家应该第一反应是23 种开发模型:单例、工厂、发布订阅... 吧啦吧啦。实际我也是,但是这次想说的不是他们,而是声明式编程(declarative programming)范式和陈述式编程(imperative...

    python 利用文件锁单例执行脚本的方法

    你可能会遇到这样的要求,一个脚本,只允许有一个实例。 在python中,为了实现这个需求,可以引入fcntl模块对文件加一个排他锁,这样一来,先启动的实例拥有了文件锁,而后启动的实例则因无法获取锁而退出 #coding=...

    maven3+struts2+spring+ibatis

    开发过程中遇到两个问题: 1.验证失败一次后就连续验证失败 这个属于与Spring整合的问题,Spring容器在初始化对象的时候会根据bean的scope配置来考虑是重新建立一个对象,还是继续使用原来的对象,拿struts2的...

    maven3.0+struts+spring+hibernate

    开发中遇到两个问题: 1.STRUTS2乱码,解决方法是在struts.xml中加入 2.验证失败一次后就连续验证失败 (即使密码正确) 这个属于与Spring整合的问题,Spring容器在初始化对象的时候会根据bean的scope配置来考虑是...

    使用设计模式实现的花店订购系统,前端用javaswing

    总的来说,通过应用设计模式,我们成功地解决了在小组课程设计中遇到的各种问题,提高了代码的可复用性、可扩展性和可维护性。同时,设计模式也使我们的代码更加结构化,易于理解和修改。这些经验和应用对于我们...

    IOS 简单传值工具类(HTPassValueTool) 编辑

    遇到传递这些类型时可以先进行封装再传递. 传递与获取数据时使用键值(KEY)作为取值的参数. 使用方法:1.设值:setValue(值, 键); 2.取值:getValue(键); 3.对象名或变量名转字符串充当KEY: NSString *varName = ...

Global site tag (gtag.js) - Google Analytics