[发明专利]一种依赖对象的初始化操作方法及相关装置有效
| 申请号: | 201910935686.6 | 申请日: | 2019-09-29 |
| 公开(公告)号: | CN110673801B | 公开(公告)日: | 2022-11-25 |
| 发明(设计)人: | 程雨佳;刘志魁 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
| 主分类号: | G06F3/06 | 分类号: | G06F3/06 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 丁曼曼 |
| 地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 依赖 对象 初始化 操作方法 相关 装置 | ||
本申请公开了一种依赖对象的初始化操作方法,包括:对第一对象创建对应的代理对象,以便第二对象将对所述第一对象的对象操作发送至所述代理对象;其中,所述第一对象和所述第二对象之间存在依赖关系;当所述第一对象初始化完成时,将所述第一对象的指针发送至所述代理对象;控制所述代理对象根据所述指针将接收到的对象操作发送至所述第一对象。通过对第一对象创建代理对象,然后将代理对象替换该第一对象,避免出现空指针问题,使得相互依赖的对象初始化过程更加顺畅。本申请还公开了一种依赖对象的初始化操作装置、服务器以及计算机可读存储介质,具有以上有益效果。
技术领域
本申请涉及计算机技术领域,特别涉及一种依赖对象的初始化操作方法、初始化操作装置、服务器以及计算机可读存储介质。
背景技术
随着计算机技术的不断发展,计算机系统内的对象操作越发的复杂,比如存在不同结构体之间的对象相互依赖的关系。举例来说,存储系统中的I/O栈都是多个层自上而下串联起来的:每一层都会对上层提交的I/O做一些本层的特殊处理,然后提交到下一层,直至写入磁盘当中。在存储系统启动后的初始化阶段,各层的上下文结构体依次初始化。
由于各层之间或多或少都有相互交互的接口,所以不免出现以下情况:在Layer n中的结构体A的初始化函数需要一个结构体B,而结构体B位于Layer m中,且Layer m的初始化顺序在Layer n之后,这样就导致了一个依赖关系的问题:在结构体A初始化时,由于还不存在结构体B,在结构体A的初始化函数中所有用到结构体B的地方将会传入一个空指针。也就是,在调用initA()函数时,需要调用get_B_from_layer_m()函数来获得Layer m的B,但此时Layer m尚未初始化,所以获取到的指针为空,在执行add_element_to_list(b)这条语句时便会将一个空指针加入到列表中,当列表被使用时便会引用这个空指针,出现空指针异常。
现有技术中,有一种解决方案便是将Layer m的初始化顺序调至Layer n之前,但也无法解决Layer m初始化也依赖于Layer n的这种相互依赖的场景。
因此,如何避免相互依赖的对象之间出现空指针异常问题是本领域技术人员关注的重点。
发明内容
本申请的目的是提供一种依赖对象的初始化操作方法、初始化操作装置、服务器以及计算机可读存储介质,通过对第一对象创建代理对象,然后将代理对象替换该第一对象,避免出现空指针问题,使得相互依赖的对象初始化过程更加顺畅。
为解决上述技术问题,本申请提供一种依赖对象的初始化操作方法,包括:
对第一对象创建对应的代理对象,以便第二对象将对所述第一对象的对象操作发送至所述代理对象;其中,所述第一对象和所述第二对象之间存在依赖关系;
当所述第一对象初始化完成时,将所述第一对象的指针发送至所述代理对象;
控制所述代理对象根据所述指针将接收到的对象操作发送至所述第一对象。
可选的,还包括:
当所述代理对象接收到对象操作时,将所述对象操作保存至回调函数列表中。
可选的,控制所述代理对象根据所述指针将接收到的对象操作发送至所述第一对象,包括:
控制所述代理对象根据所述对象操作的类型确定代理操作,根据所述指针对所述第一对象执行代理操作。
可选的,控制所述代理对象根据所述对象操作的类型确定代理操作,根据所述指针对所述第一对象执行代理操作,包括:
当所述对象操作的类型为函数调用时,控制所述代理对象根据所述指针将所述函数调用发送至所述第一对象。
本申请还提供一种依赖对象的初始化操作装置,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910935686.6/2.html,转载请声明来源钻瓜专利网。





