JAVA程序员基本功之开发实现类隐藏及应用

开发 后端
本文介绍的java程序设计语言中的类隐藏的一些基础知识。希望对大家有帮助,一起来看。

虽然在JAVA言语中要完成类的隐藏十分复杂,只需求通过三个关键字即可以完成。但是在大局部状况下,让JAVA程序员感到疑惑的是,在什么时候该把什么类隐藏。的确,在JAVA开发言语平台中,关于什么类需求隐藏,什么类不需求隐藏,往往没有很严厉的要求。

一、类隐藏的根本建议

虽然在JAVA言语中要完成类的隐藏十分复杂,只需求通过三个关键字即可以完成。但是在大局部状况下,让JAVA程序员感到疑惑的是,在什么时候该把什么类隐藏。的确,在JAVA开发言语平台中,关于什么类需求隐藏,什么类不需求隐藏,往往没有很严厉的要求。

为此程序开发人员需求根据自己的任务经验来进行判别。而即使有一定程序开发经验的员工,也不一定能够在这个问题上给出很好的答案。公说公有理,婆说婆有理,为此很难有一个一致的规范。笔者下面几个建议,也是对自己这几年来JAVA开发任务的总结。希望这些建议能够协助大家解惑。

1、不同模块之间的类要相互隐藏。

如今不少运用系统,为了进步开发效率,都提出了模块化的设计理念。如最近比拟盛行的ERP系统,假设按模块来进行设计的话,则在开发时不同的人员可以担任各自的模块,而互不干涉。

在ERP系统出售的时候,也可以按模块来进行出售,由于各个模块的功能是相对独立的。当然这只是从管理层面来说模块化设计的重要性,不过这不是我们今天要谈论内容的重点。今天要谈的是,假设运用系统按模块化来进行设计,那么不同模块之间的内如何完成隐藏呢?其实很复杂。如供应商根本信息维护、供应商进货单、应付帐款分属于三个不同的模块,辨别为采购管理、库存管理与应收应付管理。

如今在设计应收应付这个模块时其中有一个生成应付帐款的类,其需求用到采购管理模块中供应商的信息(付款条件等等)、仓库管理模块中的供应商进货单据(产品编号、数量、到货日期等等),然后才干够生成精确的应付帐款。那么在运用程序设计的时候该如何完成呢?是在那个应付帐款作业对应的类中直接从数据库中去查询这些信息吗,又或者去修正采购模块中对应的类来完成?这虽然都可以达到预定的目的,但是都不是上上之策。

团体以为,最好的方法就是程序开发人员先设计一个类(如Vender类),这个类会返回供应商编号、付款条件等信息。然后应付帐款作业中的类就直接调用这个类获取需求的信息。一方面能够很多地方都需求用到这些信息,假设每次需求的时候都应用SQL代码来获取这些信息的话,那么代码量也会很大。相反直接调用类来完成这些信息反而更加的方面。另一方面,这个Vender类关于其他类是隐藏的。

也就是说,其他类只能够通过预定义的接口向这个类传递参数并直接援用其返回的结果,而不能够修正类外部的元素。如此即使其他有十几个类或者运用程序需求调用这个类的时候,其只要输出的参数相同,则其返回的结果也就相同。那么其他类在援用返回结果的时候,就不用担忧不兼容了。所以,运用程序的模块化设计促使JAVA程序要完成类与类之间的隐藏;同时JAVA类相互之间隐藏的特性也方便了运用程序的模块化设计。

2、数据类型类与其他类之间需求完成隐藏。

在任何一个运用程序开发过程中,都需求根据企业的需求设计一些比拟有针对性的数据类型。由于光靠运用程序所提供的那些数据类型往往不能够满足程序开发人员的需求。如需求设计一些数组、记录等等数据类型。但是在设计这些数据类型的时候,程序人员就需求了一个难题。如如今在开发ERP系统的过程中,多个模块(每个模块由不同的程序员担任)都需求用到同一个记录数据类型。

那么是每个程序员都设计一个记录类型的数据类型,还是共用同一个数据类型呢?假设各管各的,就需求建立多个记录类型的数据类型,管理起来比拟麻烦,对后续晋级也会遇到阻碍。而假设大家共用一个记录类型的数据类型,大家又担忧其他程序人员不小心修正了这个数据类型而给他们形成了麻烦。这之间难道就没有和平的共存方式了呢?其实,在运用程序开发的过程中可以以为的将运用程序开人人员分为数据类型创者者与业务逻辑开发者。

然后数据类型开发者可以根据其他开发人员的需求创建一些定义数据类型的类,这些类的话关于其他程序开发人员开发的类是隐藏的。也就是说,其他类不能够对这个数据类型进行修正。那么即可以进步这些数据类型的应用率,而且也可以保证其他类可以以固定的格式援用这些类。

3、业务层与表示层之间的类要相互隐藏。

应用过J2EE开发平台的人一定知道,在开发运用程序的时候,业务逻辑层与表示层之间是相互独立的。业务逻辑层主要完成一些担任的运算,如物料需求方案运算。而表示层的话只担任一些详细的显示。如通过阅读器客户端来显示结果还是通过软件窗口来显示运算结果。虽然客户端所采用的方式不同,但是其外部的运算是相同的。

此时最好把完成业务逻辑层的类与完成表示层的类相互隐藏起来。由于在实际开发过程中,他们往往是由不同的程序开发人员完成的。为了防止不同程序开发人员之间的相互干扰,防止表示层的开发人员有意中修正了业务逻辑层的JAVA类,就必需要把业务逻辑层的类隐藏起来。

也就是说,表示层开发人员只需求知道业务逻辑层的类需求哪些参数、能够以什么样的形式返回结果即可。然后表示层的类在调用业务逻辑层中的类的时候,只需求按照要求输出参数、按照规则获取结果即可,而不需求关注其业务逻辑层类外部的完成机制,从而加重了表示层开发人员的任务量。同时也防止了业务层开发人员对这个类进行修正,从而其他的运用程序开发人员可以以同一种方式来援用这些类。

4、假设某个业务逻辑还不怎样完善时,要执行隐藏。

在运用程序开发的过程中,能够某些业务逻辑暂时没有很好的解决方案,但是需求的参数或者返回的结果是确定的。此时可以把这个业务逻辑建立一个的类,并对其他类进行隐藏。如此的话,当出现更好的解决方案之后,就可以直接更改这个类中的业务逻辑。由于类中成员关于其他程序人员是隐藏的,为此对类中的处置机制进行更改并不会影响到其别人员开发的运用程序。他们只关心你能够在最短时间内取得精确的结果。为此在遇到这种状况时,最好把类与其他的类执行隐藏。

可见,哪些类需求相互隐藏能够判别起来比拟复杂。但是有一个普遍适用的原则,就是假设一个类有不同的程序人员需求援用。如用户A设计了一个统计应收帐款余额的类,用户B与C,包括用户A都需求调用这个类。那么这个类就最好进行隐藏。防止其他类在调用这个类的时候,不小心修正了其外部的完成方式。这会对其他用户调用这个类发生不利影响。

二、完成JAVA类隐藏的三个关键字

之所有要完成JAVA类隐藏,主要是让任何程序开发人员都无法触及他们不应该初期的局部(如业务逻辑或者数据类型的外部操作)。虽然项目管理员能够在程序开发过程中屡次劝诫团队成员不要直接操作其他开发人员所设计类中的成员。但是假设缺乏一定的控制手段,这些事情往往会在有意有意中发作。

为此需求采取一些强制的手段来防止这些状况的发作。而且这些事现方式必需复杂,不能够太过于复杂。在JAVA言语平台中,就提供了Public、private、protected三个关键字来完成对类的隐藏与控制。

这些关键字决定了类或者类中的成员能否对其他类是隐藏的,能否被其他类进行操作与修正。如public关键字表示紧随其后的元素对任何人都是可用的,可以被任何人所修正。而关键字Private则表示除了类创建者和这个类型的外部方法之外的任何人都不能够进行拜访。而关键Protected的作用跟Private类似,只是其是作用在继承中的。

可见在JAVA程序开发中,要完成类的隐藏是很复杂的,也是JAVA程序员必需要掌握的一项根本功。而其难度就在于在适当的时候完成类和类中成员的隐藏。这就要程序员在程序开发过程中好好琢磨了。

希望通过以上内容的介绍,能够给你带来帮助。

责任编辑:于铁 来源: 互联网
相关推荐

2014-11-20 14:39:12

网络传输

2020-10-21 09:18:50

程序员前端Github

2022-03-31 15:17:04

JavaSocketServlet容器

2015-01-15 09:21:24

TCP窗口

2011-05-16 15:49:58

JAVA

2009-05-18 13:07:44

类隐藏Java关键字

2024-11-01 08:34:18

Spring配置@Bean

2010-09-26 08:56:10

Oracle

2009-10-10 16:57:33

布线工艺要求

2011-06-20 08:38:42

程序员

2017-04-12 10:40:34

公有云

2017-04-17 20:00:38

程序员开发算法

2011-08-05 13:49:53

iPhone 应用 开发

2018-01-15 10:38:04

2019-02-26 09:55:52

Java开发工具

2020-10-14 11:15:55

Java程序员框架

2024-03-13 13:10:48

JavaInteger缓存

2012-11-08 09:49:30

C++Java程序员

2019-11-27 10:08:36

程序员技能开发者

2020-10-14 08:32:08

算法递归面试
点赞
收藏

51CTO技术栈公众号