仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 817|回复: 13
打印 上一主题 下一主题

[学习教程] 了解下JAVA的诊断Java代码: Fictitious Implementation毛病形式,第1部分

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:16:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
没有那个大公司会傻了吧唧用.net网页编程开发大型项目,开发了,那等于自己一半的生命线被微软握着呢。而.net网页编程不行,限制在window系统,又是捆绑,鄙视微软之!
Java言语接口是一种壮大的工具。它具有多承继的良多长处,而没有甚么成绩。为客户但愿利用的一切服务指定一个接口,使得在必要时插进这类接口的分歧完成成为大概。
遗憾的是,标准中能够被表达的部分只要办法申明。对任何完成来讲,极可能另有良多别的稳定量但愿被把握,可是Java言语没有供应反省它们的工具。
臆想毛病形式
因为这类限定,极可能“完成”了一个接口而实践上没有满意预期的语义。由这类FictitiousImplementation招致的毛病就是本周专栏的主题。
比方,请看一看上面这个仓库的接口:
清单1.仓库的接口
publicinterfaceStack{
 publicObjectpop();
 publicvoidpush(Objecttop);
 publicbooleanisEmpty();
}
从Java范例反省器的角度看,包括切合如上申明的办法的任何类能够作为Stack的正当完成。可是实践上,我们但愿仓库能满意一些别的的请求。比方:
假如一个对象o被压进仓库s,而且在仓库长进行的下一步操纵是pop,那末这个操纵的前往值应当是o。
假如关于一个给定的仓库s,s.isEmpty()的前往值是true,而且在这个仓库长进行的下一步操纵是pop,那末挪用pop应当抛出一个RuntimeException非常。
另有大批别的的能够指定的稳定量。我们但愿仓库怎样处置屡次push操纵?关于多线程会有甚么举动?很难经由过程编程来实行这些稳定量。我们能够(而且应当)在文档编写时说起它们,可是编写完成的开辟者大概简单疏忽它们。假如产生这类情形,那末依附这些稳定量的客户将不克不及完成这类完成,就构成了毛病。我称这类形式的毛病为FictitiousImplementation,由于我公平地将其归罪于完成而不是客户。正如任何毛病都有本人的形式一样,FictitiousImplementation大概不克不及立即看出,而是埋伏,一向埋没到某种不屈常的实行路径发明它。
不要指责Java言语!
在持续这篇专栏前,我要指出我并非品评Java言语不克不及指定这类稳定量。同意这类标准的任何机制城市有良多随之而来的弱点。起首,我们想要指定的良多稳定量不克不及被静态地反省。固然范例申明只表达了稳定量的一小部分,可是比下面我们概述的用于仓库的这类束缚简单反省。
在接口中同意更多可表达标准有另外一方面的弱点:如许做,很简单让Java言语背负良多成绩,使得言语中各处都是多承继。请看上面的接口:
清单2.弹出器接口
publicinterfacePopper{
 publicObjectpop();
}
<p>
而学习JAVA我觉得最应该避免的就是:只学习,不思考,只记忆,不实践!
山那边是海 该用户已被删除
沙发
发表于 2015-1-20 19:05:23 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
只想知道 该用户已被删除
板凳
发表于 2015-1-24 15:35:44 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
深爱那片海 该用户已被删除
地板
发表于 2015-1-25 18:26:31 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
飘灵儿 该用户已被删除
5#
发表于 2015-2-4 16:18:12 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
再见西城 该用户已被删除
6#
发表于 2015-2-4 20:31:05 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
再现理想 该用户已被删除
7#
发表于 2015-2-5 02:31:13 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
若天明 该用户已被删除
8#
发表于 2015-2-6 15:53:41 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
冷月葬花魂 该用户已被删除
9#
发表于 2015-2-7 17:57:35 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
第二个灵魂 该用户已被删除
10#
发表于 2015-2-10 02:50:00 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
莫相离 该用户已被删除
11#
发表于 2015-2-21 20:20:32 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
变相怪杰 该用户已被删除
12#
发表于 2015-3-4 00:54:23 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
飘飘悠悠 该用户已被删除
13#
发表于 2015-3-7 06:28:18 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
兰色精灵 该用户已被删除
14#
发表于 2015-3-14 12:36:45 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-10 04:58

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表