CN109992482A - 观察中间件析构方法、装置、计算机设备和存储介质 - Google Patents

观察中间件析构方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN109992482A
CN109992482A CN201910290928.0A CN201910290928A CN109992482A CN 109992482 A CN109992482 A CN 109992482A CN 201910290928 A CN201910290928 A CN 201910290928A CN 109992482 A CN109992482 A CN 109992482A
Authority
CN
China
Prior art keywords
destructed
attribute information
middleware
observation
observed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910290928.0A
Other languages
English (en)
Other versions
CN109992482B (zh
Inventor
陈智颖
余平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Cubesili Information Technology Co Ltd
Original Assignee
Guangzhou Huaduo Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Huaduo Network Technology Co Ltd filed Critical Guangzhou Huaduo Network Technology Co Ltd
Priority to CN201910290928.0A priority Critical patent/CN109992482B/zh
Publication of CN109992482A publication Critical patent/CN109992482A/zh
Application granted granted Critical
Publication of CN109992482B publication Critical patent/CN109992482B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种观察中间件析构方法、装置、计算机设备和存储介质,所述方法包括:获取观察对象、被观察对象与观察中间件之间的监听关系;设置所述观察中间件的第一属性信息,并将所述第一属性信息添加到被观察对象中;其中,所述第一属性信息强引用所述观察中间件;当需要析构所述被观察对象时,根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象。可以在被观察对象析构时,根据被观察对象的第一属性信息和观察中间件之间的强引用关系,先析构观察中间件,避免程序崩溃的同时,不会影响被观察对象的生命周期。

Description

观察中间件析构方法、装置、计算机设备和存储介质
技术领域
本发明涉及计算机技术领域,具体而言,本发明涉及一种观察中间件析构方法、观察中间件析构装置、计算机设备和存储介质。
背景技术
随着互联网技术以及通信技术的快速发展,操作装置已经从个人电脑领域迅速普及到移动终端领域。在操作装置方面,以微软操作装置、安卓操作装置和IOS(由苹果公司开发的操作装置)操作装置为主流。IOS操作装置中,常用到KVO(由观察对象监听被观察对象的一种监听模式)模式,当被观察对象先于观察中间件析构时,容易导致程序崩溃。
目前通常设置KVO控制对象来强引用被观察对象,当观察对象析构时,KVO控制对象会调用并析构观察中间件,这样观察中间件就会先于被观察对象析构,避免程序崩溃。但由于KVO控制对象强引用被观察对象,导致被观察对象的生命周期受到影响而出现不能自主析构的问题。
发明内容
本发明的目的旨在至少能解决上述的技术缺陷之一,特别是被观察对象的生命周期受到影响而出现不能自主析构的技术缺陷。
本发明提供一种观察中间件析构方法,包括如下步骤:
获取观察对象、被观察对象与观察中间件之间的监听关系;
设置所述观察中间件的第一属性信息,并将所述第一属性信息添加到被观察对象中;其中,所述第一属性信息强引用所述观察中间件;
当需要析构所述被观察对象时,根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象。
在一个实施例中,所述获取观察对象、被观察对象与观察中间件之间的监听关系的步骤之前,还包括:
建立所述观察对象和所述被观察对象之间的监听关系,并生成所述观察中间件。
在一个实施例中,所述监听关系为所述观察对象监听所述被观察对象;所述观察中间件在所述监听关系建立时,生成于所述观察对象和所述被观察对象之间。
在一个实施例中,所述根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象的步骤包括:
利用所述第一属性信息对应的强引用关系析构所述观察中间件;
在所述观察中间件被析构后,析构所述被观察对象。
在一个实施例中,所述根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象的步骤之前,还包括:
接收针对所述被观察对象的第一析构指令,根据所述第一析构指令查询所述被观察对象的属性信息;
当查找到所述观察中间件的第一属性信息时,调用所述第一属性信息析构所述观察中间件。
在一个实施例中,所述观察中间件的析构方法还包括:
设置所述被观察对象的第二属性信息,并将所述第二属性信息添加到指定的析构发起对象上;其中,所述第二属性信息弱引用所述被观察对象;
当需要析构所述析构发起对象时,根据所述第二属性信息和所述第一属性信息先析构所述观察中间件,再析构所述析构发起对象。
在一个实施例中,所述根据所述第二属性信息和所述第一属性信息先析构所述观察中间件,再析构所述析构发起对象的步骤,包括:
利用所述第二属性信息对应的弱引用关系和所述第一属性信息对应的强引用关系,析构所述观察中间件;
在所述观察中间件被析构后,析构所述析构发起对象。
在一个实施例中,所述根据所述第二属性信息和所述第一属性信息先析构所述观察中间件,再析构所述析构发起对象的步骤之前,还包括:
接收针对所述析构发起对象的第二析构指令,根据所述第二析构指令查询所述析构发起对象的属性信息;
当查找到所述析构发起对象的第二属性信息时,调用所述第二属性信息。
在一个实施例中,所述利用所述第二属性信息对应的弱引用关系和第一属性信息对应的强引用关系,析构所述观察中间件的步骤,包括:
根据所述第二属性信息对应的弱引用关系,查询所述被观察对象的属性信息;
当查询到所述第一属性信息时,根据所述第一属性信息的强引用关系析构所述观察中间件。
本发明还提供一种观察中间件析构装置,包括:
监听关系建立模块,用于获取观察对象、被观察对象与观察中间件之间的监听关系;
属性设置模块,用于设置所述观察中间件的第一属性信息,并将所述第一属性信息添加到被观察对象中;其中,所述第一属性信息强引用所述观察中间件;
析构模块,用于当需要析构所述被观察对象时,根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象。
本发明还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如任一实施例所述观察中间件析构方法的步骤。
本发明还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行任一实施例所述观察中间件析构方法的步骤。
上述的观察中间件析构方法、装置、计算机设备和存储介质,通过获取观察对象、被观察对象与观察中间件之间的监听关系;设置所述观察中间件的第一属性信息,并将所述第一属性信息添加到被观察对象中;其中,所述第一属性信息强引用所述观察中间件;当需要析构所述被观察对象时,根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象。可以在被观察对象析构时,根据被观察对象的第一属性信息和观察中间件之间的强引用关系,先析构观察中间件,避免程序崩溃的同时,不会影响被观察对象的生命周期。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为一个实施例中观察中间件的析构方法的应用环境示意图;
图2为一个实施例中观察中间件的析构方法的流程图;
图3为一个实施例中观察中间件的析构过程的结构示意图;
图4为一个实施例中观察中间件的析构方法的流程图;
图5为另一个实施例中观察中间件的析构方法的流程图;
图6为一个实施例中观察中间件的析构过程的结构示意图;
图7为另一个实施例中观察中间件的析构过程的结构示意图;
图8为一个实施例中观察中间件的析构装置结构示意图;
图9为一个实施例中计算机设备的内部结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本申请提供的观察中间件的析构方法,可以应用于如图1所示的应用环境中。如图1所示,观察对象监听被观察对象时,生成观察中间件,其中,观察中间件需要先于被观察对象析构,以避免程序崩溃。具体的,服务器获取观察对象、被观察对象与观察中间件之间的监听关系;服务器设置所述观察中间件的第一属性信息,并将所述第一属性信息添加到被观察对象中;其中,所述第一属性信息强引用所述观察中间件;当需要析构所述被观察对象时,服务器根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象。
在一个实施例中,如图2所示,提供了一种观察中间件的析构方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤S201,获取观察对象、被观察对象与观察中间件之间的监听关系。
本步骤中,可以获取已经建立好的观察对象、被观察对象与观察中间件之间的监听关系。
在一个实施例中,步骤S201的获取观察对象、被观察对象与观察中间件之间的监听关系的步骤之前,还包括:建立所述观察对象和所述被观察对象之间的监听关系,并生成所述观察中间件。
具体的,所述监听关系为所述观察对象监听所述被观察对象;所述观察中间件在所述监听关系建立时,生成于所述观察对象和所述被观察对象之间。
步骤S202,设置所述观察中间件的第一属性信息,并将所述第一属性信息添加到被观察对象中;其中,所述第一属性信息强引用所述观察中间件。
其中,观察中间件的第一属性信息即观察中间件的引用属性。
在一种实施过程中,可以将第一属性信息添加到被观察对象中,此时,由于第一属性信息强引用观察中间件,因此,被观察对象强引用所述观察中间件。
在另一种实施过程中,如图3所示,可以基类添加第一属性信息P到被观察对象和观察对象中,但此时只有被观察对象的第一属性信息P是强引用观察中间件的,观察对象的第一属性信息P和观察中间件之间没有强引用关系,因此,也只有被观察对象强引用观察中间件。
步骤S203,当需要析构所述被观察对象时,根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象。
可以理解的是,由于第一属性信息强引用观察中间件,因此,当需要析构被观察对象时,首先根据所述第一属性信息先析构观察中间件,再析构所述被观察对象。
在一个实施例中,如图4所示,步骤S203的根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象,包括:
步骤S310,利用所述第一属性信息对应的强引用关系析构所述观察中间件。
步骤S320,在所述观察中间件被析构后,析构所述被观察对象。
在具体实施过程中,当需要析构被观察对象时,会查询被观察对象的所有属性,当查询到被观察对象的第一属性信息时,就会查询到第一属性信息所强引用的观察中间件,那么观察中间件就会被先被析构,然后被观察对象才会析构。
在一个实施例中,步骤S203的根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象之前,还包括:
(1)接收针对所述被观察对象的第一析构指令,根据所述第一析构指令查询所述被观察对象的属性信息。
如图3所示,当被观察对象接收到第一析构指令时,根据第一析构指令查询被观察对象的属性信息。
(2)当查找到所述观察中间件的第一属性信息时,调用所述第一属性信息析构所述观察中间件。
当查询到被观察对象的第一属性信息P时,由于第一属性信息P具有引用关系,因此,调用第一属性信息P析构强引用的观察中间件。
在本实施例中,由于被观察对象的第一属性信息强引用观察中间件,因此,当接收到针对被观察对象的第一析构指令时,观察中间件就会根据针对被观察对象的第一析构指令而先被析构,然后被观察对象才会析构。观察中间件比被观察对象先析构,程序不会出现崩溃,此外,被观察对象的生命周期也没有收到任何影响。
上述的观察中间件的析构方法,通过获取观察对象、被观察对象与观察中间件之间的监听关系;设置所述观察中间件的第一属性信息,并将所述第一属性信息添加到被观察对象中;其中,所述第一属性信息强引用所述观察中间件;当需要析构所述被观察对象时,根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象。可以在被观察对象析构时,根据被观察对象的第一属性信息和观察中间件之间的强引用关系,先析构观察中间件,避免程序崩溃的同时,不会影响被观察对象的生命周期。
在一个实施例中,如图5所示,本发明提供的观察中间件的析构方法,还包括:
步骤S204,设置所述被观察对象的第二属性信息,并将所述第二属性信息添加到指定的析构发起对象上;其中,所述第二属性信息弱引用所述被观察对象。
其中,被观察对象的第二属性信息即被观察对象的引用属性。
在一种实施过程中,可以将第二属性信息添加到析构发起对象中,此时,由于第二属性信息弱引用被观察对象,因此,析构发起对象弱引用所述观察中间件。
需要注意的是,可以指定析构发起对象为除被观察对象和观察对象以外的其他对象,也可以指定析构发起对象为观察对象。
当指定析构发起对象为观察对象时,可以应用于被观察对象是个单例的情况,此时需要在观察对象析构的时候,解除观察的关系,即析构观察中间件。如图6所示,可以基类添加第二属性信息D到被观察对象和观察对象中,但此时只有观察对象的第二属性信息D是弱引用被观察对象的,因此,观察对象弱引用被观察对象。
当指定除被观察对象和观察对象以外的其他对象为析构发起对象时,如图7所示,可以基类添加第二属性D到被观察对象、观察对象和析构发起对象中,但此时只有析构发起对象的第二属性信息D是弱引用被观察对象的,因此,析构发起对象弱引用被观察对象。
在上述几种实施过程中,由于被观察对象是被弱引用,因此,并不影响被观察对象的生命周期。
步骤S205,当需要析构所述析构发起对象时,根据所述第二属性信息和所述第一属性信息先析构所述观察中间件,再析构所述析构发起对象。
本步骤中,当需要析构析构发起对象时,会查询析构发起对象的所有属性,当查询到析构发起对象的第二属性信息时,就会查询到第二属性信息所弱引用的被观察对象,然后查询被观察对象的属性,从而查询到第一属性信息,根据第一属性信息的强引用关系,先析构观察中间件,然后再析构析构发起对象。
在一个实施例中,步骤S205根据所述第二属性信息和所述第一属性信息先析构所述观察中间件,再析构所述析构发起对象之前,还包括:
(1)接收针对所述析构发起对象的第二析构指令,根据所述第二析构指令查询所述析构发起对象的属性信息。
以图6所示为例进行说明,当析构发起对象,即图6中的观察对象接收到第二析构指令时,根据所述第二析构指令查询观察对象的所有属性信息,即第一属性信息P和第二属性信息D。
(2)当查找到所述析构发起对象的第二属性信息时,调用所述第二属性信息。
当查询到第二属性信息D时,由于第二属性信息D具有引用关系,因此,调用第二属性信息D。
在一个实施例中,步骤S205的根据所述第二属性信息和所述第一属性信息先析构所述观察中间件,再析构所述析构发起对象,包括:
步骤S510,利用所述第二属性信息对应的弱引用关系和所述第一属性信息对应的强引用关系,析构所述观察中间件;
步骤S520,在所述观察中间件被析构后,析构所述析构发起对象。
在一个实施例中,步骤S510的利用所述第二属性信息对应的弱引用关系和第一属性信息对应的强引用关系,析构所述观察中间件,包括:
(1)根据所述第二属性信息对应的弱引用关系,查询所述被观察对象的属性信息;
(2)当查询到所述第一属性信息时,根据所述第一属性信息的强引用关系析构所述观察中间件。
上述实施例中,由于析构发起对象的第二属性信息弱引用被观察对象,而被观察对象的第一属性信息又强引用观察中间件,因此,当接收到针对析构发起对象的第二析构指令时,观察中间件就会根据第二析构指令而先被析构,然后析构发起对象才会析构。观察中间件比被观察对象先析构,程序不会出现崩溃,此外,被观察对象的生命周期也没有收到任何影响。
上述的观察中间件的析构方法,通过获取观察对象、被观察对象与观察中间件之间的监听关系;设置所述观察中间件的第一属性信息,并将所述第一属性信息添加到被观察对象中;其中,所述第一属性信息强引用所述观察中间件;设置所述被观察对象的第二属性信息,并将所述第二属性信息添加到指定的析构发起对象上;其中,所述第二属性信息弱引用所述被观察对象;当需要析构所述析构发起对象时,根据所述第二属性信息和所述第一属性信息先析构所述观察中间件,再析构所述析构发起对象。可以在被观察对象析构时,根据被观察对象的第一属性信息和观察中间件之间的强引用关系,以及析构发起对象和被观察对象之间的弱引用关系,可以先析构观察中间件,避免程序崩溃,同时不会影响被观察对象的生命周期。
如图8所示,图8为一个实施例中观察中间件的析构装置的结构示意图,本实施例中提供一种观察中间件的析构装置,包括监听关系建立模块801、属性设置模块802和析构模块803,其中:
监听关系建立模块801,用于获取观察对象、被观察对象与观察中间件之间的监听关系;
属性设置模块802,用于设置所述观察中间件的第一属性信息,并将所述第一属性信息添加到被观察对象中;其中,所述第一属性信息强引用所述观察中间件;
析构模块803,用于当需要析构所述被观察对象时,根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象。
关于观察中间件的析构装置的具体限定可以参见上文中对于观察中间件的析构方法的限定,在此不再赘述。上述观察中间件的析构装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
如图9所示,图9为一个实施例中计算机设备的内部结构示意图。该计算机设备包括通过装置总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作装置、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种观察中间件的析构方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种观察中间件的析构方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提出了一种计算机设备,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如下步骤:获取观察对象、被观察对象与观察中间件之间的监听关系;设置所述观察中间件的第一属性信息,并将所述第一属性信息添加到被观察对象中;其中,所述第一属性信息强引用所述观察中间件;当需要析构所述被观察对象时,根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象。
在其中一个实施例中,处理器执行计算机程序时所述获取观察对象、被观察对象与观察中间件之间的监听关系的步骤之前,还包括:建立所述观察对象和所述被观察对象之间的监听关系,并生成所述观察中间件。
在其中一个实施例中,处理器执行计算机程序时所述监听关系为所述观察对象监听所述被观察对象;所述观察中间件在所述监听关系建立时,生成于所述观察对象和所述被观察对象之间。
在其中一个实施例中,处理器执行计算机程序时所述根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象的步骤包括:利用所述第一属性信息对应的强引用关系析构所述观察中间件;在所述观察中间件被析构后,析构所述被观察对象。
在其中一个实施例中,处理器执行计算机程序时所述根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象的步骤之前,还包括:接收针对所述被观察对象的第一析构指令,根据所述第一析构指令查询所述被观察对象的属性信息;当查找到所述观察中间件的第一属性信息时,调用所述第一属性信息析构所述观察中间件。
在其中一个实施例中,处理器执行计算机程序时还包括:设置所述被观察对象的第二属性信息,并将所述第二属性信息添加到指定的析构发起对象上;其中,所述第二属性信息弱引用所述被观察对象;当需要析构所述析构发起对象时,根据所述第二属性信息和所述第一属性信息先析构所述观察中间件,再析构所述析构发起对象。
在其中一个实施例中,处理器执行计算机程序时所述根据所述第二属性信息和所述第一属性信息先析构所述观察中间件,再析构所述析构发起对象的步骤,包括:利用所述第二属性信息对应的弱引用关系和所述第一属性信息对应的强引用关系,析构所述观察中间件;在所述观察中间件被析构后,析构所述析构发起对象。
在其中一个实施例中,处理器执行计算机程序时所述根据所述第二属性信息和所述第一属性信息先析构所述观察中间件,再析构所述析构发起对象的步骤之前,还包括:接收针对所述析构发起对象的第二析构指令,根据所述第二析构指令查询所述析构发起对象的属性信息;当查找到所述析构发起对象的第二属性信息时,调用所述第二属性信息。
在其中一个实施例中,处理器执行计算机程序时所述利用所述第二属性信息对应的弱引用关系和第一属性信息对应的强引用关系,析构所述观察中间件的步骤,包括:根据所述第二属性信息对应的弱引用关系,查询所述被观察对象的属性信息;当查询到所述第一属性信息时,根据所述第一属性信息的强引用关系析构所述观察中间件。
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如下步骤:获取观察对象、被观察对象与观察中间件之间的监听关系;设置所述观察中间件的第一属性信息,并将所述第一属性信息添加到被观察对象中;其中,所述第一属性信息强引用所述观察中间件;当需要析构所述被观察对象时,根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象。
在其中一个实施例中,计算机可读指令被处理器执行时所述获取观察对象、被观察对象与观察中间件之间的监听关系的步骤之前,还包括:建立所述观察对象和所述被观察对象之间的监听关系,并生成所述观察中间件。
在其中一个实施例中,计算机可读指令被处理器执行时所述监听关系为所述观察对象监听所述被观察对象;所述观察中间件在所述监听关系建立时,生成于所述观察对象和所述被观察对象之间。
在其中一个实施例中,计算机可读指令被处理器执行时所述根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象的步骤包括:利用所述第一属性信息对应的强引用关系析构所述观察中间件;在所述观察中间件被析构后,析构所述被观察对象。
在其中一个实施例中,计算机可读指令被处理器执行时所述根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象的步骤之前,还包括:接收针对所述被观察对象的第一析构指令,根据所述第一析构指令查询所述被观察对象的属性信息;当查找到所述观察中间件的第一属性信息时,调用所述第一属性信息析构所述观察中间件。
在其中一个实施例中,计算机可读指令被处理器执行时还包括:设置所述被观察对象的第二属性信息,并将所述第二属性信息添加到指定的析构发起对象上;其中,所述第二属性信息弱引用所述被观察对象;当需要析构所述析构发起对象时,根据所述第二属性信息和所述第一属性信息先析构所述观察中间件,再析构所述析构发起对象。
在其中一个实施例中,计算机可读指令被处理器执行时所述根据所述第二属性信息和所述第一属性信息先析构所述观察中间件,再析构所述析构发起对象的步骤,包括:利用所述第二属性信息对应的弱引用关系和所述第一属性信息对应的强引用关系,析构所述观察中间件;在所述观察中间件被析构后,析构所述析构发起对象。
在其中一个实施例中,计算机可读指令被处理器执行时所述根据所述第二属性信息和所述第一属性信息先析构所述观察中间件,再析构所述析构发起对象的步骤之前,还包括:接收针对所述析构发起对象的第二析构指令,根据所述第二析构指令查询所述析构发起对象的属性信息;当查找到所述析构发起对象的第二属性信息时,调用所述第二属性信息。
在其中一个实施例中,计算机可读指令被处理器执行时所述利用所述第二属性信息对应的弱引用关系和第一属性信息对应的强引用关系,析构所述观察中间件的步骤,包括:根据所述第二属性信息对应的弱引用关系,查询所述被观察对象的属性信息;当查询到所述第一属性信息时,根据所述第一属性信息的强引用关系析构所述观察中间件。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种观察中间件的析构方法,其特征在于,包括如下步骤:
获取观察对象、被观察对象与观察中间件之间的监听关系;
设置所述观察中间件的第一属性信息,并将所述第一属性信息添加到被观察对象中;其中,所述第一属性信息强引用所述观察中间件;
当需要析构所述被观察对象时,根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象。
2.根据权利要求1所述的方法,其特征在于,所述获取观察对象、被观察对象与观察中间件之间的监听关系的步骤之前,还包括:
建立所述观察对象和所述被观察对象之间的监听关系,并生成所述观察中间件。
3.根据权利要求2所述的方法,其特征在于,所述监听关系为所述观察对象监听所述被观察对象;所述观察中间件在所述监听关系建立时,生成于所述观察对象和所述被观察对象之间。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象的步骤包括:
利用所述第一属性信息对应的强引用关系析构所述观察中间件;
在所述观察中间件被析构后,析构所述被观察对象。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象的步骤之前,还包括:
接收针对所述被观察对象的第一析构指令,根据所述第一析构指令查询所述被观察对象的属性信息;
当查找到所述观察中间件的第一属性信息时,调用所述第一属性信息析构所述观察中间件。
6.根据权利要求1至5任一项所述的方法,其特征在于,还包括:
设置所述被观察对象的第二属性信息,并将所述第二属性信息添加到指定的析构发起对象上;其中,所述第二属性信息弱引用所述被观察对象;
当需要析构所述析构发起对象时,根据所述第二属性信息和所述第一属性信息先析构所述观察中间件,再析构所述析构发起对象。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第二属性信息和所述第一属性信息先析构所述观察中间件,再析构所述析构发起对象的步骤,包括:
利用所述第二属性信息对应的弱引用关系和所述第一属性信息对应的强引用关系,析构所述观察中间件;
在所述观察中间件被析构后,析构所述析构发起对象。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第二属性信息和所述第一属性信息先析构所述观察中间件,再析构所述析构发起对象的步骤之前,还包括:
接收针对所述析构发起对象的第二析构指令,根据所述第二析构指令查询所述析构发起对象的属性信息;
当查找到所述析构发起对象的第二属性信息时,调用所述第二属性信息。
9.根据权利要求7所述的方法,其特征在于,所述利用所述第二属性信息对应的弱引用关系和第一属性信息对应的强引用关系,析构所述观察中间件的步骤,包括:
根据所述第二属性信息对应的弱引用关系,查询所述被观察对象的属性信息;
当查询到所述第一属性信息时,根据所述第一属性信息的强引用关系析构所述观察中间件。
10.一种观察中间件析构装置,其特征在于,包括:
监听关系建立模块,用于获取观察对象、被观察对象与观察中间件之间的监听关系;
属性设置模块,用于设置所述观察中间件的第一属性信息,并将所述第一属性信息添加到被观察对象中;其中,所述第一属性信息强引用所述观察中间件;
析构模块,用于当需要析构所述被观察对象时,根据所述第一属性信息先析构所述观察中间件,再析构所述被观察对象。
11.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,其特征在于,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至9中任一项所述观察中间件析构方法的步骤。
12.一种存储有计算机可读指令的存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至9中任一项所述观察中间件析构方法的步骤。
CN201910290928.0A 2019-04-11 2019-04-11 观察中间件析构方法、装置、计算机设备和存储介质 Active CN109992482B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910290928.0A CN109992482B (zh) 2019-04-11 2019-04-11 观察中间件析构方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910290928.0A CN109992482B (zh) 2019-04-11 2019-04-11 观察中间件析构方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN109992482A true CN109992482A (zh) 2019-07-09
CN109992482B CN109992482B (zh) 2023-10-31

Family

ID=67133275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910290928.0A Active CN109992482B (zh) 2019-04-11 2019-04-11 观察中间件析构方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN109992482B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124712A (zh) * 2019-12-20 2020-05-08 北京奇艺世纪科技有限公司 一种事件通知方法、装置、服务器及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8301671B1 (en) * 2009-01-08 2012-10-30 Avaya Inc. Method and apparatus providing removal of replicated objects based on garbage collection
US20150293797A1 (en) * 2014-04-14 2015-10-15 Chall Fry Methods and systems for key value observing
CN107301095A (zh) * 2017-06-14 2017-10-27 北京小度信息科技有限公司 系统运行方法以及操作系统
CN107391007A (zh) * 2017-04-20 2017-11-24 阿里巴巴集团控股有限公司 一种虚拟键盘的交互方法及装置
CN107741891A (zh) * 2017-10-17 2018-02-27 网易(杭州)网络有限公司 对象的析构方法、介质、装置和计算设备
CN107908567A (zh) * 2017-11-27 2018-04-13 腾讯科技(深圳)有限公司 一种Java对象引用方法、装置和介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8301671B1 (en) * 2009-01-08 2012-10-30 Avaya Inc. Method and apparatus providing removal of replicated objects based on garbage collection
US20150293797A1 (en) * 2014-04-14 2015-10-15 Chall Fry Methods and systems for key value observing
CN107391007A (zh) * 2017-04-20 2017-11-24 阿里巴巴集团控股有限公司 一种虚拟键盘的交互方法及装置
CN107301095A (zh) * 2017-06-14 2017-10-27 北京小度信息科技有限公司 系统运行方法以及操作系统
CN107741891A (zh) * 2017-10-17 2018-02-27 网易(杭州)网络有限公司 对象的析构方法、介质、装置和计算设备
CN107908567A (zh) * 2017-11-27 2018-04-13 腾讯科技(深圳)有限公司 一种Java对象引用方法、装置和介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
小盟城主: "iOS中解决NSTimer循环引用问题", 《HTTPS://WWW.JIANSHU.COM/P/823EF4FB63BC?UTM_CAMPAIGN=MALESKINE&UTM_CONTENT=NOTE&UTM_MEDIUM=SEO_NOTES》 *
小盟城主: "iOS中解决NSTimer循环引用问题", 《HTTPS://WWW.JIANSHU.COM/P/823EF4FB63BC?UTM_CAMPAIGN=MALESKINE&UTM_CONTENT=NOTE&UTM_MEDIUM=SEO_NOTES》, 12 February 2019 (2019-02-12), pages 1 - 6 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124712A (zh) * 2019-12-20 2020-05-08 北京奇艺世纪科技有限公司 一种事件通知方法、装置、服务器及存储介质

Also Published As

Publication number Publication date
CN109992482B (zh) 2023-10-31

Similar Documents

Publication Publication Date Title
CN108228444B (zh) 一种测试方法和装置
CN108683704A (zh) 一种Socket网络通信测试方法及其系统、存储介质
CN108897557A (zh) 微服务架构的更新方法及装置
CN109992482A (zh) 观察中间件析构方法、装置、计算机设备和存储介质
CN113515462B (zh) 用于测试的方法、装置、设备以及存储介质
CN104506249A (zh) 实现对无线设备进行网络配置的方法、设备以及无线设备
CN112131014B (zh) 决策引擎系统及其业务处理方法
CN112131095B (zh) 压力测试方法和装置
CN105243015B (zh) 一种自动化测试软件的方法及系统
CN105227411B (zh) 测试接口的方法、网络代理和系统
CN117119078A (zh) 基于Kubernetes集群互联互通调度框架的隐私任务调度方法及装置
CN105897673A (zh) 视频通话连接方法、系统、设备及视频服务端
CN105872434A (zh) 视频通话连接方法、系统、设备及视频服务端
CN101714995A (zh) 完整测试iSCSI目标并生成报告的方法
CN115202907A (zh) 一种应用程序接口的运行方法、系统、计算机设备及介质
CN105872435A (zh) 视频通话连接方法、系统、设备及视频服务端
CN110347409B (zh) 自动控制方法、客户端和服务器
JP2015114968A (ja) アプリケーション解析装置、アプリケーション解析方法、プログラム
CN113315736B (zh) 一种业务进程间的数据同步方法和装置
CN106301832B (zh) 一种处理系统日志报文的方法和装置
CN109995607B (zh) 流量开销的测试方法、终端、服务器和计算机存储介质
CN110535730A (zh) 网络设备的ip认证功能测试方法和装置
CN110377463A (zh) 接口测试方法、装置、终端及计算机可读存储介质
CN106547679B (zh) 脚本管理的方法和脚本管理平台
CN111078534B (zh) 一种测试调度方法和相关设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210108

Address after: 511442 3108, 79 Wanbo 2nd Road, Nancun Town, Panyu District, Guangzhou City, Guangdong Province

Applicant after: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 511442 29 floor, block B-1, Wanda Plaza, Huambo business district, Panyu District, Guangzhou, Guangdong.

Applicant before: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd.

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20190709

Assignee: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd.

Assignor: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd.

Contract record no.: X2021440000054

Denomination of invention: Observe the middleware deconstruction method, device, computer equipment and storage medium

License type: Common License

Record date: 20210208

GR01 Patent grant
GR01 Patent grant