Java interface--

作者在 2017-03-06 17:15:45 发布以下内容
对于任何关系,最重要的一点都是规定好所有方面都必须遵守的界限或规则。创建一个库
时,相当于建立了同那个库的用户(即“客户程序员”)的一种关系——那些用户属于另外的程
序员,可能用我们的库自行构建一个应用程序,或者用我们的库构建一个更大的库。
如果不制订规则,客户程序员就可以随心所欲地操作一个类的所有成员,无论我们本来愿不
愿意其中的一些成员被直接操作。所有东西都在别人面前都暴露无遗。
一般情况下,一个C程序项目会在50K到100K行代码之间的某个地方开始中断。这是由于C仅
有一个“命名空间”,所以名字会开始互相抵触,从而造成额外的管理开销。而在Java中,
package关键字、包命名方案以及import关键字为我们提供对名字的完全控制,所以命名冲突
的问题可以很轻易地得到避免。
有两方面的原因要求我们控制对成员的访问。第一个是防止用户接触那些他们不应碰的工
具。对于数据类型的内部机制,那些工具是必需的。但它们并不属于用户接口的一部分,用
户不必用它来解决自己的特定问题。所以将方法和字段变成“私有”(private)后,可极大方便
用户。因为他们能轻易看出哪些对于自己来说是最重要的,以及哪些是自己需要忽略的。这
样便简化了用户对一个类的理解。
进行访问控制的第二个、也是最重要的一个原因是:允许库设计者改变类的内部工作机制,
同时不必担心它会对客户程序员产生什么影响。最开始的时候,可用一种方法构建一个类,
后来发现需要重新构建代码,以便达到更快的速度。如接口和实施细节早已进行了明确的分
隔与保护,就可以轻松地达到自己的目的,不要求用户改写他们的代码。利用Java中的访问
指示符,可有效控制类的创建者。那个类的用户可确切知道哪些是自己能够使用的,哪些则
是可以忽略的。但更重要的一点是,它可确保没有任何用户能依赖一个类的基础实施机制的
任何部分。作为一个类的创建者,我们可自由修改基础的实施细节,这一改变不会对客户程
序员产生任何影响,因为他们不能访问类的那一部分。 有能力改变基础的实施细节后,除了
能在以后改进自己的设置之外,也同时拥有了“犯错误”的自由。无论当初计划与设计时有多么
仔细,仍然有可能出现一些失误。由于知道自己能相当安全地犯下这种错误,所以可以放心
大胆地进行更多、更自由的试验。这对自己编程水平的提高是很有帮助的,使整个项目最终
能更快、更好地完成。
一个类的公共接口是所有用户都能看见的,所以在进行分析与设计的时候,这是应尽量保证
其准确性的最重要的一个部分。但也不必过于紧张,少许的误差仍然是允许的。若最初设计
的接口存在少许问题,可考虑添加更多的方法,只要保证不删除客户程序员已在他们的代码
里使用的东西。
JAVA | 阅读 1190 次
文章评论,共0条
游客请输入验证码
浏览2342009次