java模块化开发

利用java默认作用域实现类限制访问

大多数开发者在创建java类时,往往不假思索就是public,这样意味着所有人都可以访问。这样在大型项目开发中往往造成混乱,导致代码难以维护。

  1. public 类
    这是大家熟悉的,即没有限制所有地方都可以访问。

  2. 缺省类
    针对非内部类,java类的修饰,可以是public和default(默认没有修改关键字)。default方式表示只能在当前包类访问,起到一定的隔离作用。

充分使用缺省类进行业务隔离

针对一个业务系统可以划分为若干个业务模块,针对每个业务模块代码放在相应的包中,除了实体类和需要公开的接口类定义成public,其他类采用默认方式,只能当前业务包中访问。 建议提供对外访问的类可以使用java8 function接口方式进行封装,减少开发工作量。
这样开发的优势有,对外接口和内部接口分离,避免后面业务维护造成耦合度太高。

java 模块化的局限性

一般我们划分项目除了业务方式外,还要从开发角度划分,如DAO层、业务层以及视图层,如果你把他们分别放置不同的包中,则难以实现隔离,因为java包本身没有继承的访问能力。所以OSGI规范针对java的模块化进行加强,eclipse项目即典型的模块化方式开发。

附录:java中public、private、protected、default的区别

在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes(即同一个包),认为都是自己的朋友friendly。

  • 1、public

    public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用

  • 2、private

    private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。

  • 3、protected

    protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。

  • 4、default

    java的默认访问权限,当没有使用上面提到的任何访问限定词时,就使用它,这种权限通常被称为包访问权限,在这种权限下,类可以访问在同一个包中的其他类的成员,也即可以访问我们前面说的朋友,在包之外,这些成员如同指定了private。

表格形式

作用域当前类同一包friendly其他包
public
protected×
default××
private×××
    原文作者:neweastsun
    原文地址: https://blog.csdn.net/neweastsun/article/details/54377710
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞