[发明专利]编程环境下私有方法的实现方法、调用方法及其装置有效
申请号: | 201710245020.9 | 申请日: | 2017-04-14 |
公开(公告)号: | CN108733432B | 公开(公告)日: | 2021-12-21 |
发明(设计)人: | 范伟 | 申请(专利权)人: | 创新先进技术有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448;G06F8/30 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 黄熊 |
地址: | 英属开曼群岛大开曼*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 编程 环境 私有 方法 实现 调用 及其 装置 | ||
本申请公开了一种编程环境下私有方法的实现方法,包括:当第一私有方法带有类实例的指针时,在类中按照编程语言的静态方法声明第一私有方法,其中,第一私有方法的声明的参数包括第一私有方法的类实例的指针;按照编程语言的函数实现方法实现私有方法。当第一私有方法的实现需要访问私有变量时,还可采用指针访问保护器实现。本申请还公开上述私有方法的调用方法,包括:采用函数类型转换器将第一私有方法转换为编程环境方法供调用,函数类型转换器的参数包括第一私有方法的函数指针、第一私有方法的名称标识符和第一私有方法所属类的类型标识符。本申请在保证调用性能的前提下,实现了编程环境下私有方法真正意义上的私有化。
技术领域
本申请涉及计算机技术领域,尤其涉及一种编程环境下私有方法的实现方法、调用方法及其装置。
背景技术
随着计算机技术的发展,越来越多的编程语言和编程环境应运而生。部分编程语言和编程环境支持方法和变量的私有化,例如Java和JavaScript等,还有部分编程语言和编程环境不支持,例如Objective-C等。以下以Objective-C为例,说明不支持私有方法和私有变量的这类编程环境中存在的问题。
Objective-C(也可简称为OC)是一种计算机语言,可以支持真正的面向对象编程。Objective-C通过提供类定义、方法以及属性的语法,还有其他可以提高类的动态扩展能力的结构等,扩展了标准的ANSIC语言。
Objective-C并没有直接提供诸如public,private和protected这样的限定,这就意味着在Objective-C里面,从理论上来说所有的方法都是公有的,即可被任何全局函数、局部函数、类内部的方法或其他类中的方法调用。然而,在使用Objective-C进行面向对象编程时,经常需要“私有方法”,以便将某些方法限定为仅能在类内部进行调用,满足模块化程序设计的需要。
在现有技术中,为了在类似OC这种缺乏私有方法实现手段的编程环境中实现“私有方法”,可以采用将私有方法的声明隐藏在.m文件(源代码文件)中的方式,使得外部调用者不知道有此方法,从而无法调用此方法。这种方式虽然能够起到一定的“私有方法”效果,但存在如下缺陷:
(1)由于这种编程环境的语言特性,其语言本身并没有提供私有方法,所以采用上述方式隐藏的“私有方法”仍然可能被外部调用者通过前向声明的方式在外部意外调用,从而可能出现代码逻辑和程序调用上的混乱,进而可能出现程序稳定性和安全性上的风险。
(2)在开发中会高频使用到类“继承”,此时,采用上述方式声明的“私有方法”由于其本质仍然是公有方法,所以,子类有可能在不知情的情况下对父类中已声明的“私有方法”再次声明,从而,父类中已声明的“私有方法”将被子类中声明的“私有方法”覆盖(Override),出现程序开发里的“方法覆盖问题”。
因此,亟待一种能够在保证方法调用性能的前提下,在编程环境下真正起到私有化作用的私有方法。
发明内容
本申请实施例提供一种编程环境下私有方法的实现方法、调用方法及相应的装置,目的在于保证方法调用性能的前提下,实现编程环境下私有方法真正意义上的私有化。
本申请实施例采用下述技术方案:
第一方面,本申请提供一种编程环境下私有方法的实现方法,包括:
当第一私有方法带有类实例的指针时,在类中按照编程语言的静态方法声明所述第一私有方法;其中,所述第一私有方法的声明的参数包括所述第一私有方法的类实例的指针;
按照编程语言的函数实现方法实现所述私有方法。
优选地,本申请提供编程环境下私有方法的实现方法中,当所述第一私有方法的实现需要访问私有变量时,按照编程语言的函数实现方法实现所述私有方法,包括:
以实例变量的形式在代码文件中声明所述私有变量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于创新先进技术有限公司,未经创新先进技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710245020.9/2.html,转载请声明来源钻瓜专利网。