Java学习笔记:模块化

模块化概述

  • Java语言随时间推移庞大,称为“臃肿”语言。无论是大软件还是小程序都要JVM加载整个JRE环境。
  • 针对这种情况,Java9推出了模块化系统,Java被拆分为N多个模块,允许Java程序根据需要选择加载程序必须的Java模块


    2021-02-10_200119.jpg

模块的基本使用

目标:在Test01文件中调用StudentTeacher中的方法

2021-02-10_201715.jpg

  • 在模块的src目录下新建module-info.java的描述性文件,该文件专门定义模块名,访问权限,模块依赖等信息
  • 模块导出:exports 包名;
    模块所有为导出的包都是模块私有,模块外无法访问
  • 模块依赖:requires 模块名;
    模块要访问其他模块内容,必须明确指定依赖哪个模块,否则无法访问
    添加依赖报错,需要Alt+Enter添加
//MyOne下module-info.java
module MyOne {
    exports com.itheima01;
    exports com.itheima02;
}
//MyTwo下module-info.java
module ModuleOperator {
    requires MyOne;
}

模块服务的使用

  • Java6开始,服务使用者只面向接口编程,但不清楚服务提供者的实现类
  • Java9模块化系统进一步简化服务机制
    将服务接口定义在模块中,使用uses来声明该服务接口
    服务实现模块使用provides为服务接口指定实现类

2021-02-10_203704.jpg

目标:让Test02可以使用MyService接口却看不到具体的实现类itheimaNJUPT

//MyOne下module-info.java
import com.itheima03.MyService;
import com.itheima03.impl.itheima;
import com.itheima03.impl.NJUPT;
module MyOne {
    exports com.itheima01;
    exports com.itheima02;
    exports com.itheima03;

    provides MyService with itheima, NJUPT;
}
//MyTwo下module-info.java
import com.itheima03.MyService;

module ModuleOperator {
    requires MyOne;

    uses MyService;
}

你可能感兴趣的:(Java学习笔记:模块化)