第二章 模块化的两方面
模块化的两方面:运行时模型和开发模型。
2.1运行时模型:是关注如何在运行时对模块化的软件系统进行管理。在java平台中,模块化的系统事实标准是OSGI,很多应用应用平台借助OSGi运行时的能力增强模块化。直到现在众多使用平台内部封装OSGi却选择对企业级开发人员隐藏,所以开发人员无法构建充分利用模块化运行环境的应用程序。
2.2 开发模型:解决的问题是开发人员怎样使用框架构架软件应用。开发模型可以分为两类:编辑模型和设计范式。
2.2.1 编辑模型:利用框架和工具,开发人员可以使用运行时模块系统的能力,而不用担心编程模型。框架封装了对API的依赖,这样代码就不用直接和API交互了,通过这些关注点分离能够让java类依旧简单旧式java对象,他们不会依赖模块系统的框架。
2.2.2设计模式:设计范式的几个实例如:面向对象(OO)编程以及企业级JavaBean(Enterprise JavaBean ,EJB) 。
面向对象作为可重用的基础,类的粒度大小。开发团队很难的正确的把握和使用面向对象的理念。叫深层次结构的继承及包含太多功能的基类会导致设计不佳和脆弱的软件系统。总之,面向对象开发过早地失效了。面向对象编程语言的运行时功能提供了如多态,动态绑定等特性,开发人员可以很容易地理解编程模型中的很多方面。如今被视为面向对象技术的简单事实(“ 优先使用对象组合而不是对象继承”以及“面向接口编程而不是实现”)。
企业级 java Bean 尤其是其中的实体bean,曾呗视为将java开发的业务应用进行组件化的一种方式。EJB的运行时能力是很吸引力的——事务、持久为、安全性、透明等——并且直接合并到平台中,不过两个很明显的问题:开发模式的复杂并且无法很好的理解。
吸取的教训:面向对象的程序设计和EJB都曾经被视为有前途的技术,但事实证明,他们并没有达到期初所炒作的那样。问题不在于面向对象编程语言或实现EJB规范的平台,而在于我们怎么样使用这些技术设计应用。最大的挑战是关于设计规范的。
注意:运行时模块化系统通常会支持一下几个功能:
- 封装:包中任何公开类只要在类路径下就能被类路径下的其他类访问。所有的事情都是全局性的,这阻碍了模块化设计。运行时模块化系统提供了隐藏实现细节的能力。
- 动态部署:在标准的java中更新软件通常需要重新启动JVM。运行时模块系统支持热部署。
- 版本管理:在标准的java中,不能为一个类部署多个版本。模块化的系统允许部署多个版本。
- 依赖管理:在标准的java中,没有实现模块的依赖结构。像Maven这样的构建工具试图通过描述依赖关系的JAR文件仓库解决这个问题。运行时模块系统可以实现运行时的依赖管理。
相关推荐
Java应用架构设计:模块化模式与OSGiJava应用架构设计
《Java应用架构设计 模块化模式与OSGi》PDF版本下载
Java应用架构设计 模块化模式与OSGi
Java应用架构设计模块化模式与OSGi
此版本有章节一级的目录,就是说只有点击章节才会跳转。
Java应用架构设计、 如何进行模块化模式、与OSGi有什么联系?
《Java应用架构设计-模块化模式与OSGi》书中源码,美国 Kirk著,张卫滨译 源码本来放在google,不便访问,现上传于CSDN,方便有需要的人士传阅
Java应用架构设计 模块化模式与OSGi,同时也包含了ArcGISAPIforJavascript开发教程的开发教程
app+java+源码 《Java应用架构设计》源代码示例
应用架构图(大型应用) 运行环境 java系统软件技术架构设计方案全文共3页,当前为第3页。java系统软件技术架构设计方案全文共3页,当前为第3页。服务器 操作系统:Microsoft Windows NT/2000 或更高版本; java...
然后简要阐述面向对象程序设计的基本原则,并结合软件工程的思想来讨论多层的J2EE应用架构,分析它们满足企业级应用的方式,,再通过讲述常用的几种Java设计模式和Java反射技术来说明如何实现这些应用架构
java大型架构三本全书(大型分布式网站架构设计,大型网站系统与java中间件实践,分布式java应用 基础与实践)
包含MVC模式设计,总体设计概述,基于AJAX技术的架构设计,基于J2EE平台的系统架构设计等待呢个
Java微服务架构在邮政移动互联网应用研发设计中的思考与实践.pdf
Java微服务架构在邮政移动互联网应用研发设计中的思考与实践
企业级应用的一般概念和需求,面向对象程序设计的基本原则
Java BS架构应用系统设计实训学生学习手册.docxJava BS架构应用系统设计实训学生学习手册.docxJava BS架构应用系统设计实训学生学习手册.docxJava BS架构应用系统设计实训学生学习手册.docxJava BS架构应用系统设计...