如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
长沙电脑培训http://www.csbdqn.com/rjzx/rjxy/java/20110601/90.htmlJava开发中类隐藏及应用场景分析隐藏是JAVA语言平台中提出来的一个新名词。其次在其他语言平台上,也有类似的说法,只是称呼不一样而已。但是隐藏的功能对于应用程序开发来说,特别是大型应用程序设计,非常的有用。作为一名合格的JAVA平台程序开发人员,应该结合JAVA语言提供的三个关键字,来实现类的隐藏。一、类隐藏的基本建议虽然在JAVA语言中要实现类的隐藏非常简单,只需要通过三个关键字即可以完成。但是在大部分情况下,让JAVA程序员感到疑惑的是,在什么时候该把什么类隐藏。确实,在JAVA开发语言平台中,对于什么类需要隐藏,什么类不需要隐藏,往往没有很严格的要求。为此程序开发人员需要根据自己的工作经验来进行判断。而即使有一定程序开发经验的员工,也不一定能够在这个问题上给出很好的答案。公说公有理,婆说婆有理,为此很难有一个统一的标准。笔者下面几个建议,也是对自己这几年来JAVA开发工作的总结。希望这些建议能够帮助大家解惑。1、不同模块之间的类要相互隐藏。现在不少应用系统,为了提高开发效率,都提出了模块化的设计理念。如最近比较流行的ERP系统,如果按模块来进行设计的话,则在开发时不同的人员可以负责各自的模块,而互不干涉。在ERP系统出售的时候,也可以按模块来进行出售,因为各个模块的功能是相对独立的。当然这只是从管理层面来说模块化设计的重要性,不过这不是我们今天要谈论内容的重点。今天要谈的是,如果应用系统按模块化来进行设计,那么不同模块之间的内如何实现隐藏呢?其实很简单。如供应商基本信息维护、供应商进货单、应付帐款分属于三个不同的模块,分别为采购管理、库存管理与应收应付管理。现在在设计应收应付这个模块时其中有一个生成应付帐款的类,其需要用到采购管理模块中供应商的信息(付款条件等等)、仓库管理模块中的供应商进货单据(产品编号、数量、到货日期等等),然后才能够生成准确的应付帐款。那么在应用程序设计的时候该如何实现呢?是在那个应付帐款作业对应的类中直接从数据库中去查询这些信息吗,又或者去修改采购模块中对应的类来实现?这虽然都可以达到预定的目的,但是都不是上上之策。个人认为,最好的方法就是程序开发人员先设计一个类(如Vender类),这个类会返回供应商编号、付款条件等信息。然后应付帐款作业中的类就直接调用这个类获取需要的信息。一方面可能很多地方都需要用到这些信息,如果每次需要的时候都利用SQL代码来获取这些信息的话,那么代码量也会很大。相反直接调用类来实现这些信息反而更加的方面。另一方面,这个Vender类对于其他类是隐藏的。也就是说,其他类只能够通过预定义的接口向这个类传递参数并直接引用其返回的结果,而不能够修改类内部的元素。如此即使其他有十几个类或者应用程序需要调用这个类的时候,其只要输入的参数相同,则其返回的结果也就相同。那么其他类在引用返回结果的时候,就不用担心不兼容了。所以,应用程序的模块化设计促使JAVA程序要实现类与类之间的隐藏;同时JAVA类相互之间隐藏的特性也方便了应用程序的模块化设计。2、数据类型类与其他类之间需要实现隐藏。在任何一个应用程序开发过程中,都需要根据企业的需要设计一些比较有针对性的数据类型。因为光靠应用程序所提供的那些数据类型往往不能够满足程序开发人员的需要。如需要设计一些数组、记录等等数据类型。但是在设计这些数据类型的时候,程序人员就需要了一个难题。如现在在开发ERP系统的过程中,多个模块(每个模块由不同的程序员负责)都需要用到同一个记录数据类型。那么是每个程序员都设计一个记录类型的数据类型,还是共用同一个数据类型呢?如果各管各的,就需要建立多个记录类型的数据类型,管理起来比较麻烦,对后续升级也会遇到障碍。而如果大家共用一个记录类型的数据类型,大家又担心其他程序人员不小心修改了这个数据类型而给他们造成了麻烦。这之间难道就没有和平的共存方式了呢?其实,在应用程序开发的过程中可以认为的将应用程序开人人员分为数据类型创者者与业务逻辑开发者。然后数据类型开发者可以根据其他开发人员的需要创建一些定义数据类型的类,这些类的话对于其他程序开发人员开发的类是隐藏的。也就是说,其他类不能够对这个数据类型进行修改。那么即可以提高这些数据类型的利用率,而且也可以保证其他类可以以固定的格式引用这些类。3、业务层与表示层之间的类要相互隐藏。利用过J2EE开发平台的人肯定知道,在开发应用程序的时候,业务逻辑层与表示层之间是相互独立的。业务逻辑层主要实现一些负责的运算,如物料需求计划运算。而表示层的话只负责一些具体的显示。如通过浏览器客户端来显示结果还是通过软件窗口来显示运算结果。虽然客户端所采用