《Android游戏开发详解》——第2章,第2.14节隐藏变量

本节书摘来自异步社区《Android游戏开发详解》一书中的第2章,第2.14节隐藏变量,作者 【美】Jonathan S. Harbour,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.14 隐藏变量
Android游戏开发详解
注意,到目前位置,我们能够以两种不同的方式来修改Phone对象的状态。我们能够使用点运算符直接访问其变量,并且分配显式的值;还能够使用Phone对象提供的行为来间接地修改Phone对象的状态。

如果能够直接深入到myPhone对象,取出其信息并修改,我们说对象的变量是暴露的。从现在开始,我们将禁止暴露变量,基于很多原因,暴露变量可能会有问题。

例如,如果某人试图给一个变量分配一个非法的(或者不符合逻辑的)值,会怎么样呢?如下的代码对Java程序来说可能是可以接受的,但是,随后如果我们想要扩展这一程序的话,它可能会引发问题,并且这些值真的可能会影响到一些其他的功能。

myPhone.androidVersionNumber = -10;   // Version should be positive
myPhone.poweredOn = false;       // This is fine
myPhone.playingMusic = true;       // Shouldn’t play music while phone is off

暴露变量可能会引发问题,另一个原因在于,我们可能需要处理敏感信息。如果要运行一个本章开头所讨论的视频共享站点,我们可能不想让用户访问User对象的password变量,它应该总是隐藏起来的。在这里,安全性是一个问题。

我们想要隐藏变量的第三个原因,是为了可维护性和可扩展性。当我们随后有更加复杂的程序和游戏,它们带有众多不同类型的、彼此交互的对象,这时我们想要尽可能地减少依赖性(即那些严重依赖于特定交互的功能)。我们需要记住,程序和游戏可能会改变。你可能选择删除类并创建新的类,但是,你不想让这样的情况发生:即不得不重新编写整个应用程序来处理一处小小的修改。

例如,我们假设你有一个Enemy类,它与Player类和GameLevel类交互得很好。稍后,你决定要删除Enemy类,并且用一个SuperZombieOrangutan类来替代它。如果在Enemy、Player和GameLevel类之间有太多的依赖性,你可能需要重写这些类以处理新的敌人类型,你将要创建3个新的类而不是一个。这可能会变成一种恶意的模式。如果这需要花费很多的时间,你可能确定这一修改并不值得,这意味着你的游戏将会少一种僵尸怪兽。这绝不是好事情。

简而言之,你想要能够为游戏添加想要的功能,又不必担心修改已有的代码会成为可怕的梦魇。这意味着,我们想要让类尽可能地保持独立,而隐藏变量是朝着正确方向迈进的一步。我们将在后面的一章中更深入地讨论这一概念。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/94727

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。