欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
Java Module System
来自开放百科 - 灰狐
(版本间的差异)
小 |
小 (→图集) |
||
(未显示1个用户的11个中间版本) | |||
第1行: | 第1行: | ||
{{SeeWikipedia}} | {{SeeWikipedia}} | ||
− | + | Modular java,模块化[[Java]],Jigsaw 和 [[OSGi]]。 | |
==规范== | ==规范== | ||
第9行: | 第9行: | ||
*[http://openjdk.java.net/jeps/201 JEP 201: Modular Source Code] | *[http://openjdk.java.net/jeps/201 JEP 201: Modular Source Code] | ||
*[http://openjdk.java.net/jeps/200 JEP 200: The Modular JDK] | *[http://openjdk.java.net/jeps/200 JEP 200: The Modular JDK] | ||
− | *[http://www.osgi.org/blog/2006/10/jsr-277-review.html JSR 277 and OSGi] | + | *[http://www.osgi.org/blog/2006/10/jsr-277-review.html JSR 277 and OSGi] |
+ | |||
+ | ==模块化模式== | ||
+ | * 基本模式(Base Pattern) | ||
+ | * 管理关系(Manage Relationship):设计模块关系。 | ||
+ | * 模块重用(Module Reuse):强调模块级别的重用。 | ||
+ | * 模块内聚(Cohesive Module):模块的行为应该只服务于一个目的。 | ||
+ | * 依赖模式(Dependency Pattern) | ||
+ | * 非循环关系(Acyclic Relationship):模块关系必须是非循环的。 | ||
+ | * 等级化模块(Levelize Module):模块关系应该是等级化的。 | ||
+ | * 物理分层(Physical Layer):模块关系不应该违反概念上的分层。 | ||
+ | * 容器独立(Container Independence):模块应该独立于运行时容器。 | ||
+ | * 独立部署(Independent Deployment):模块应该是独立的可部署单元。 | ||
+ | * 可用性模式(Usability Pattern) | ||
+ | * 发布接口(Published Interface):使模块的发布接口众所周知。 | ||
+ | * 外部配置(External Configuration):模块应该可以在外部进行配置。 | ||
+ | * 默认实现(Default Implementation):为模块提供一个默认实现。 | ||
+ | * 模块门面(Module Facade):为具有底层实现的细粒度模块创建一个门面,使其成为细粒度模块的一个粗粒度入口。 | ||
+ | * 扩展性模式(Extensibility Pattern) | ||
+ | * 抽象化模块(Abstract Module):依赖于模块的抽象元素。 | ||
+ | * 实现工厂(Implementation Factory):使用工厂来创建模块的实现类。 | ||
+ | * 分离抽象(Separate Abstraction):将抽象与实现它们的类放在各自独立的模块中。 | ||
+ | * 通用模式(Utility Pattern) | ||
+ | * 就近异常(Colocate Exception):异常应该接近抛出它们的类或接口。 | ||
+ | * 等级化构建(Levelize Build:):按照模块的等级执行构建。 | ||
+ | * 测试模块(Test Module):每个模块应该有一个对应的测试模块。 | ||
+ | 模块化模式来自:[https://www.amazon.cn/%E5%9B%BE%E4%B9%A6/dp/B00F9O79X8 《Java应用架构设计:模块化模式与OSGi》] | ||
==项目== | ==项目== | ||
*[[Project Jigsaw]] | *[[Project Jigsaw]] | ||
+ | *[[OSGi]] | ||
+ | *[https://github.com/jboss-modules/jboss-modules JBoss Modules] | ||
+ | |||
+ | ==文档== | ||
+ | *[http://docs.huihoo.com/javaone/2015/CON6823-Project-Jigsaw-Under-the-Hood.pdf Project Jigsaw: Under the Hood] | ||
+ | *[http://docs.huihoo.com/javaone/2015/CON4384-Migrating-Java-UI-Client-Apps-to-the-Modular-JDK.pdf Migrating Java UI Client Apps to the Modular JDK] | ||
+ | *[http://docs.huihoo.com/javaone/2015/CON10063-Java-Components-Solving-the-Puzzle-with-Jigsaw-and-Gradle.pdf Java Components: Solving the Puzzle with Jigsaw and Gradle] | ||
+ | *[http://docs.huihoo.com/javaone/2015/CON3467-Packaging-Java-Applications.pdf Packaging Java Applications] | ||
+ | *[http://docs.huihoo.com/apache/apachecon/us2011/11-Friday/A-Modular-Java/ Modular Java 幻灯片] | ||
==图集== | ==图集== | ||
<gallery> | <gallery> | ||
image:jdk-module-graph.png|JDK Module | image:jdk-module-graph.png|JDK Module | ||
+ | image:JDK-9-Modules.png|JDK 9 Modules | ||
+ | image:Nuxeo-bundle-component-service.png|Nuxeo模块化 | ||
+ | image:Java9-modules.png|Java9 Modules | ||
+ | image:java9-module-package.png|Module,Package | ||
</gallery> | </gallery> | ||
− | |||
− | |||
− | |||
==链接== | ==链接== |
2021年7月18日 (日) 03:22的最后版本
您可以在Wikipedia上了解到此条目的英文信息 Java Module System Thanks, Wikipedia. |
Modular java,模块化Java,Jigsaw 和 OSGi。
目录 |
[编辑] 规范
- Java Platform Module System: Requirements DRAFT 2
- JSR 376: Java Platform Module System
- JEP 220: Modular Run-Time Images
- JEP 201: Modular Source Code
- JEP 200: The Modular JDK
- JSR 277 and OSGi
[编辑] 模块化模式
- 基本模式(Base Pattern)
- 管理关系(Manage Relationship):设计模块关系。
- 模块重用(Module Reuse):强调模块级别的重用。
- 模块内聚(Cohesive Module):模块的行为应该只服务于一个目的。
- 依赖模式(Dependency Pattern)
- 非循环关系(Acyclic Relationship):模块关系必须是非循环的。
- 等级化模块(Levelize Module):模块关系应该是等级化的。
- 物理分层(Physical Layer):模块关系不应该违反概念上的分层。
- 容器独立(Container Independence):模块应该独立于运行时容器。
- 独立部署(Independent Deployment):模块应该是独立的可部署单元。
- 可用性模式(Usability Pattern)
- 发布接口(Published Interface):使模块的发布接口众所周知。
- 外部配置(External Configuration):模块应该可以在外部进行配置。
- 默认实现(Default Implementation):为模块提供一个默认实现。
- 模块门面(Module Facade):为具有底层实现的细粒度模块创建一个门面,使其成为细粒度模块的一个粗粒度入口。
- 扩展性模式(Extensibility Pattern)
- 抽象化模块(Abstract Module):依赖于模块的抽象元素。
- 实现工厂(Implementation Factory):使用工厂来创建模块的实现类。
- 分离抽象(Separate Abstraction):将抽象与实现它们的类放在各自独立的模块中。
- 通用模式(Utility Pattern)
- 就近异常(Colocate Exception):异常应该接近抛出它们的类或接口。
- 等级化构建(Levelize Build:):按照模块的等级执行构建。
- 测试模块(Test Module):每个模块应该有一个对应的测试模块。
模块化模式来自:《Java应用架构设计:模块化模式与OSGi》
[编辑] 项目
[编辑] 文档
- Project Jigsaw: Under the Hood
- Migrating Java UI Client Apps to the Modular JDK
- Java Components: Solving the Puzzle with Jigsaw and Gradle
- Packaging Java Applications
- Modular Java 幻灯片
[编辑] 图集
[编辑] 链接
分享您的观点