`
jimmy.shine
  • 浏览: 396369 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(讨论)Java EE的Service的设计模式,大家讨论一下

阅读更多
有以下情况:
在创建(create)记录时,需要保存(save)到本地数据库中,同时需要通过JMS发送给JMS的接收方。使用何种模式!

个人认为:
save to local
save to jms
是二种服务,应当定义二种service,在Action中分别调用。

而我们DM(Department Manager)坚持认为,应当在一个service中实现。即在service的save()方法中,不仅保存到本地,同时JMS发送。

个人认为DM的方法不符合软件设计的模式,serivce是提供给外部使用的接口,功能应当单一,对于组合的功能,应当通过在action中调用或者是通过切面设计的原则来实现。
现在在进行权限检查或者日志记录等方面时,大部分的设计都是通过对于service进行拦截的方式来实现。(偶DM不是通过这种方法实现,而是通过在Struts的execute()方法中调用来实现。DM原来是做ASP,DOMINO开发的)。

大家热情讨论一下。
谢谢!
分享到:
评论
6 楼 jimmy.shine 2007-10-18  
Re 惊鸿逝水 :
大家可能还是没有明白偶的意思,偶的意思是分成二个Service,可以通过配置的方式,或者说是加载aspectJ拦截的方式来实现,就像是大家记录日志,总不会说在service都加上吧。
5 楼 惊鸿逝水 2007-10-18  
这种应用场景我觉得应该使用粗粒度的Service,调用者不需要去关心你是保存到Local,还是JMS还是其他。
4 楼 jimmy.shine 2007-10-18  
Re dennis_zane、hamlet、galaxystar:

不知道大家看明白没有,还是偶没有表述清楚,偶的意思是二种业务,应当提供二个Service来实现,至于通过JMS发送,完全可以通过aspectJ或者spring的拦截来实现。

这种jms的业务应当是易于配置。
3 楼 galaxystar 2007-10-17  
DM应该是有预见性的认为, 大部分业务操作都是要保存到本地,同时JMS发送.
这可以说是一种粒度适当的操作.

但是, 程序编码时, 是否易于扩展, 就要看楼主的了!
2 楼 hamlet 2007-10-17  
考虑事务性,你dm的做法不无道理
1 楼 dennis_zane 2007-10-17  
说真的,我不认为这是个问题,一开始不妨听从DM的意见,写在一个service里,如果通过JMS发送这个功能在很多地方用到,那么通过extract method、move重构一下也是举手之劳。

相关推荐

    Professional Java EE Design Patterns

    《Professional Java EE Design Patterns》是一本专注于Java EE领域设计模式的专业书籍。设计模式是一种设计技巧,用以解决在软件开发中经常遇到的问题。Java EE(Java Platform, Enterprise Edition)是为开发企业...

    java EE编程技术

    在Java EE开发中,Model-View-Controller(MVC)模式是一种常用的设计模式。Model负责数据处理,View负责显示结果,Controller负责接收用户请求并控制流程。通过MVC,我们可以实现业务逻辑与用户界面的分离,提高...

    java e e与设计模式

    Java EE(Enterprise Edition)是Java平台上用于构建企业级应用程序的标准框架。它包含了多个模块,如...这本书籍"Java与模式"很可能详细讲解了这些设计模式在实际Java EE项目中的应用,是一份非常有价值的学习资源。

    Java EE期末考试试题

    5. **MVC (Model-View-Controller)**: MVC模式是Java EE应用中常见的设计模式,用于分离业务逻辑、数据模型和用户界面。理解如何在Java EE中实现MVC,如使用Servlet处理请求,JSP显示视图,以及模型类存储和操作数据...

    精通Java EE:精通Java EE 整合应用案例\源代码\源代码2-9章.

    学习这部分内容,你需要理解Servlet生命周期,会配置web.xml,掌握JSP标签库和EL表达式,以及使用MVC设计模式。 2. **JavaServer Faces (JSF)**:JSF是Java EE提供的一种声明式UI框架,简化了用户界面的创建。了解...

    java EE教程

    通过本教程,读者将能够学习到如何使用Java EE技术栈构建复杂的Web应用,包括设计模式、最佳实践以及如何利用各种组件协同工作,从而成为一名合格的Java EE开发者。教程中的综合实例将帮助读者将理论知识转化为实际...

    Java EE技术基础

    总的来说,Java EE技术基础是理解企业级Java开发的关键,涵盖了从底层的数据库连接到高级的框架和设计模式。通过学习这些基本概念和技术,开发者可以构建复杂、可扩展且具有高度安全性的企业系统。

    Java EE练习题200902

    8. MVC(Model-View-Controller)设计模式:在Java EE应用中的实现和重要性。 9. Web服务:SOAP和RESTful服务的创建和消费。 10. Filter和Listener:如何使用它们增强应用的功能,如权限控制、日志记录等。 这些...

    Implementing SOA Using Java EE

    JMS是Java EE中的消息传递服务标准,用于实现异步通信模式。在SOA环境中,JMS可以用来实现服务之间的解耦,提高系统的灵活性和可伸缩性。 ### 三、SOA的设计原则与实践 #### 3.1 设计原则 - **服务的独立性**:每...

    Beginning Java EE 7.pdf

    - **消息模式**:介绍 Java EE 7 中的消息传递模式,如点对点和发布/订阅模型。 - **JMS API**:深入探讨 Java 消息服务 API 的使用。 ##### 第14章:SOAP Web 服务 - **SOAP 协议**:了解 SOAP 协议的基础知识及其...

    Sun Certified Enterprise Architect for Java EE Study Guide

    这本指南涵盖了广泛的Java EE相关知识,包括但不限于Web服务、EJB(Enterprise JavaBeans)、JPA(Java Persistence API)、JSF(JavaServer Faces)、Servlets、JMS(Java Message Service)以及各种设计模式。...

    Java EE基础实用教程[郑阿奇]

    此外,教程可能还会涵盖Web服务(如JAX-WS和JAX-RS)、过滤器(Filters)、监听器(Listeners)以及MVC设计模式等内容。通过学习这些知识,开发者能够具备构建复杂企业级应用的能力,为职业发展奠定坚实的基础。

    Java EE 学习方向

    - **Java设计模式** - 外观模式、适配器模式、单例模式等23种经典设计模式的应用。 - **Web服务架构** - WebService、SOA(Service-Oriented Architecture)、ESB(Enterprise Service Bus)、OSGI(Open Service...

    Java EE程序设计教程课件.rar

    这个教程课件集合提供了全面的学习资源,帮助学生和开发者深入理解Java EE程序设计的核心概念和技术。 Java EE是一个分布式、多层应用程序开发的平台,它建立在Java SE(标准版)的基础上,为构建企业级应用提供了...

    Java EE编程 源代码

    Java EE(Java Platform, Enterprise Edition)是Oracle公司提供的一个用于...在分析和学习这些代码时,要注意代码的结构、设计模式、异常处理、性能优化等方面,同时结合相关文档和教程,以便全面掌握Java EE的精髓。

    Java EE企业级应用开发教程(SSM)源码.zip

    Java EE企业级应用开发教程(SSM)源码是一个涵盖了使用Java开发企业级应用程序的实践示例。SSM是Spring、Spring MVC和MyBatis这三大框架的简称,它们是Java EE开发中常用的技术栈。这个教程源码将帮助开发者深入...

    从Java走向Java EE 源码.rar

    5. **Chapter 7**:可能涵盖了MVC(Model-View-Controller)设计模式,这是许多Web框架的基础,如Spring MVC,用于构建清晰的架构并分离关注点。 6. **Chapter 2**:早期章节通常介绍Java SE的基础,如面向对象编程...

    JavaEE课程设计报告-基于Java EE身体健康管理平台.pdf

    7. **技术实现**:可能使用Servlet处理HTTP请求,JSP用于生成动态网页,JDBC进行数据库操作,Ajax实现页面异步更新,CSS和JavaScript提升用户体验,以及MVC(Model-View-Controller)设计模式来组织代码结构。...

Global site tag (gtag.js) - Google Analytics