[发明专利]一种属性监听方法以及装置有效
申请号: | 201910966181.6 | 申请日: | 2019-10-12 |
公开(公告)号: | CN112650473B | 公开(公告)日: | 2022-05-10 |
发明(设计)人: | 汪刚 | 申请(专利权)人: | 武汉斗鱼鱼乐网络科技有限公司 |
主分类号: | G06F8/20 | 分类号: | G06F8/20 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 何蓉 |
地址: | 430000 湖北省武汉市东湖新技术开发区软件园东路*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 属性 监听 方法 以及 装置 | ||
本发明涉及应用程序开发技术领域,具体涉及一种属性监听方法、装置、设备以及存储介质。当需要监听某一个或多个属性的时候,本发明首先创建一个监听类,在所述监听类中定义接口函数,并将待监听属性和所述待监听属性发生变化之后的block回调传入所述接口函数,当所述待监听属性的属性值发生变化的时候,就将收到的消息传给所述block回调,完成对一个对象的监控。本发明使用系统的监听模式,而不是自己去写一个监听者,因而简化了开发过程。同时,系统的监听模式可以通过block回调以实现解耦合,监听一个属性写一个block回调,因而可以降低代码耦合度,很方便地实现消息监听的回调。
技术领域
本发明涉及应用程序开发技术领域,具体涉及一种属性监听方法以及装置。
背景技术
随着互联网技术的快速发展,应用程序极大地提高了人们的生活、学习以及工作的便利性。在应用程序的开发过程中,经常需要对某个对象的属性进行监听。当需要对某个属性进行监听时,现有技术中是通过调用系统的监听添加方法添加一个监听者,并传入一个需要监听的参数,这个参数是需要监听的属性。例如,如果想要监听一个人的身高,那么需要为这个人添加监听者,这个监听者需要监听一个属性,这个属性便是这个人的身高。当这个人的身高发生变化的时候,就会有一个回调,收到回调之后就可以知道监听者的值是新值还是旧值。
当需要观察多个属性的时候,上述方法需要在回调中使用多个条件判断语句对多个属性进行区分,导致代码的耦合度增大。
发明内容
本发明所要解决的是现有技术中对属性进行监听代码耦合度大的问题。
本发明实施例提供了以下方案:
第一方面,本发明实施例提供一种属性监听方法,包括:
步骤S01:创建监听类,并在所述监听类中定义接口函数;
步骤S02:设置待监听属性和所述待监听属性发生变化之后的block回调,并将所述待监听属性和所述block回调传入所述接口函数,在所述接口函数中执行步骤S03至步骤S06;
步骤S03:判断所述待监听属性和所述block回调是否存在,在所述待监听属性和所述block回调存在时,执行步骤S04;
步骤S04:创建item对象,将所述item对象所在的类、所述待监听属性和所述block回调作为所述item对象的属性;
步骤S05:调用系统的监听函数,并将被监听者和所述item对象作为所述监听函数的参数;
步骤S06:将所述被监听者作为key、属性集合作为object进行存储;
步骤S07:在所述监听类中调用系统的监听方法,在所述系统的监听方法中添加监听者和所述被监听者,所述监听者为所述监听类;
步骤S08:当所述系统的监听方法被触发时,获取所述item对象;
步骤S09:判断所述item对象是否存在所述block回调,若所述item对象存在所述block回调,则执行步骤S10;
步骤S10:获取所述待监听属性发生变化之前的值和所述待监听属性发生变化之后的值,并通过所述block回调将所述待监听属性发生变化之前的值、所述待监听属性发生变化之后的值、所述被监听者以及所述监听者返回至需要调用的地方。
在一种可能的实施例中,当不需要对所述待监听属性进行监听时,调用取消注册方法在所有注册信息中删除所述监听者的注册信息,并调用系统的监听移除函数移除所述监听者。
在一种可能的实施例中,在所述调用取消注册方法在所有注册信息中删除所述监听者的注册信息之前,还包括:
对所述所有注册信息进行加锁;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼鱼乐网络科技有限公司,未经武汉斗鱼鱼乐网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910966181.6/2.html,转载请声明来源钻瓜专利网。