当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

Java中的情势[Java编程]

赞助商链接



  本文“Java中的情势[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

世上一向有一个神话:计划可以并且应当独立于实现的细节,计划普通被看做是一个抽象的概念而实现是一个代码的具体实例.假如我们坚信"计划是一个富有创造性和目的性的活动:为某一个目标而尽心拟定的构造的概念,",一个构造假如不可以阐明它的环境,大概不能与环境合作,那么这个构造就不合适这一目标.环境中包含目标平台--语言、工具、库、中间件(middleware),等.还有它的功效性和非功效性的单元.

我们会认为在不知道地形筹划的时刻计划房屋,大概在不清楚利用的道质料的时刻制作摩天大厦是不公道的事情.我们将线程、分布这类概念看做为小的编码的细节的见解无疑是在计划中招致浪费精神(时间和金钱)的导火索,终究我们发现的是理论与实践的差别在实践中要比在理论中还大.固然在一些情形下一个高层次计划的某部份可以在很多技术下保持不变,但是更多的情形是我们需求亲身来补足这个圆圈,答应(乃至鼓舞)细节和实际的信息来影响并奉告系统的构造.

情势(Patterns)的作用就是获得这些构造上的信息.它们可以描写--预见性的或回想性的--计划和计划的原理,报告从问题到办理,阐明环境,获得工作的动力以及应此产生的后果.这里,我将集合报告两个情势--Command-Query Separation和Command Method--为一个类接口中的办法分配任务,观察他们若何彼此作用并影响并发的、分布的和有序的环境以及本地履行.

接口计划.顾名思义,接口供应了差别系统之间大概系统差别组件之间的界定.在软件中,接口供应了一个屏障,从而从实现中别离了目标,从具体中别离了概念,从作者中别离了用户.在Java中,有很多接口的概念:public部份为潜在的用户供应了类和办法的接口,protected部份为它的子类(subclass)以及四周的包供应了一个接口;一个包有一个公用的部份;反射(Reflection)是别的一种供应、利用对象办法接口的机制.

约束及供应.站在用户对作者的角度,一个接口成立并命名了一个目的模子的利用办法.类接口中的办法供应了一种特别的利用办法.是这些约束--编译时的范例系统,运行是的非常机制及返回值--使得类作者的目的得以表现和加强.在这方面最简单的例子是对封装的意义的理解:私有化可以保证类用户只可以通过类的公用办法接口来操作信息和行为.

但是,关于封装来说,远不止数据私有那么简单.在计划中,封装常常会触及到自我包含(self-containment).一个需求你知道若何调用一个办法(e.g."在一个线程的环境中,在一个办法调用后调用另一个办法,你必须明确地同步对象")的类的封装就不如将全部这些全部包含并躲藏的类(e.g."这个类是thread-safe的")好.前一个计划存在着计划的漏洞,它的很多限定条件是模糊的而不是经过加强的.这就把责任推给了用户而不是让类供应者做这些工作来完成类的计划,并且,这是不可避免的漏洞百出.

在这种情形下,供应(affordances)描写了利用的可行性和不可行性.

术语供应(affordances)指事物的被感知的真实的属性,首先,这些属性可以决意事物的利用的大概办法.一个椅子可以用来支持其他东西,所以,可以坐人.一个椅子照样可以搬运(carried).玻璃可以透光,也可以被打坏……

供应供应了对事物操作的线索,板状物可以压、柄状物可以旋转,沟状物可以插入东西.球状物可以扔大概反弹.当利用了供应的上风后,用户可以只通过看便肯定该做什么:没有图、没有标签也没有阐明.复杂的事物大概会需求一些注释,但是简单的事物不该该这样.当简单的东西也需求用图片、标签来阐明的时刻,计划就是失利的.

类计划者的一个职责就是在接口中减小约束与供应之间的隔阂(gap),匹配目标以及一定程度上的安闲度,尽大概减小错误利用的大概.

对环境敏感的计划.在空间大概时间上别离办法的履行--比方,线程,远程办法调用,消息行列--可以对计划的精确性和效率产生意义深远的影响.这种别离带来的后果是不可轻忽的:并发引入了不肯定性和环境挑选的开销;分布引入了错误的和不断增添的回程的调用开销.这些是计划的问题,而不是改正bug那样简单.

无论是在何种情形下,后果都是将会阻碍全部权气势的程序计划(Property-Style Programming)--当一个接口主要由set和get办法构成的时刻,每个办法都呼应的直接指向私有区域.这样的类的封装很差(意思是毫无遮盖).接口中的域拜候器(Field accessors)普通是不会供应信息的:他们在对象的利用中不能通讯、简单化和抽象化,这普通会招致冗长并易呈现错误的代码.全部权气势的程序计划在短时间内不是一个大的活动.分布和并行通过引入了精确性和严重的性能开销放大了这些格局上实践的问题.

透明度和bug灾难.抽象答应我们在必要的时刻可以忽视细节,所以我们的计划思惟可以均衡环境的因素而不是受制于它们.决意什么样的细节可以忽视便成为一个挑衅.问题的严重性在重要的细节别忽视的情形下上升了.

计划常常会尽大概使环境因素尽大概的透明.透明可以成为一个诱人的主张:大概它可以让线程和远程对象通讯完好透明,这样用户在举行对象通讯的时刻什么也不会发觉到.Proxy情势支持一定程度上的透明度.这加强了RMI和COBRA的底子.本地的代理的对象和利用远程的对象在利用中具有相同的接口,并且编组上的细节答应调用着利用熟习的办法来调用模子.但是,这种分布透明并不完好:失误和潜在的影响,不能被完好躲藏并且需求考虑.毕竟透明不是毛巾.


  以上是“Java中的情势[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .