`
非飞
  • 浏览: 80376 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

各层共享使用PO的代价

阅读更多
    网上一大堆关于PO,POJO,DTO,VO等等对象的讨论,通常都是各持己见,公说公有理,婆说婆有理,讨论到最后也没有什么定论。今天看到一个应用的代码,发现其讲PO直接做为VO(view object)在表示层使用。只从代码上讲,这样做确实省去了跟多操作。不用重复的做对象的赋值、构造。但是会过头来看,这样无疑增加了代码的耦合性。做一个简单的假设,如果对持久层的PO进行了修改,相应的使用PO做为对应的VO(value object)业务逻辑层和使用PO最为VO(view object)的表示层都必须做相应的修改,如此的应用给代码的维护带来了很大的负担,可谓是一动则百动。
    在J2EE应用开发中,是不应该出现这中PO共享使用的方式的。实体对象不应该被跨层使用,各层维护自己的实体对象。这点看书我想大家都知道,而在实际应用中很多人都选择不遵循这一规则。(在使用hibernate时有所不同,引用:“不过由于Hibernate的强大功能,例如动态生成PO,PO的状态管理可以脱离Session,使得在应用了Hibernate的J2EE框架中,PO完全可以充当VO,因此我们下面把PO和VO合并,统称为PO。”引文:结合struts和hibernate谈J2EE架构的数据表示。)出现这总现象,我想原因只有一个就是贪图了一时的省事,在一次性应用开发中,相对的业务对象改动可能性相当的少,很多时候在做项目的时候并不会出现预料不到的改变,没有必要去管理一大堆各式各样的实体对象,这样就自然的导致了PO在各层中共享使用。可是就我目前接触到的项目基本上没有需求是如此明确的,通常需求都是在不断的改变,甚至有时到了最后发版的时候,一些客户都会提出修改需求的要求。另外就是自做需求的情况就更是如此了,这种项目的需求是不断的在变化的。为了保证项目的适应性和可扩展性,就必须保证各层之间的相对独立,尽可能降低耦合度。





非飞 2005-03-01 12:40





分享到:
评论

相关推荐

    Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合

    5. **整合测试**:完成各层的编码后,需要进行综合测试以确保所有部分都能正常工作。这包括单元测试、集成测试等。 #### 四、总结 Spring框架的强大之处在于它不仅能够有效地组织和管理复杂的软件系统,还能够与...

    Oracle PO 审批层次

    Oracle PR 和PO 审批流程,审批层次建立

    SAP如何在QM层上屏蔽PO

    本文将深入探讨如何利用SAP QM模块在质量管理层面屏蔽特定采购订单(PO),即在特定条件下阻止某供应商的某物料进入后续的生产或库存流程。 ### 一、SAP QM模块概述 SAP QM(Quality Management)是SAP ERP中的一...

    SAP PO 流程集成平台介绍

    6. 集中式业务规则管理:SAP PO 使用业务规则自动化决策,提供集中式业务规则管理。 7. 资产互操作性:SAP PO 在不同系统之间提供了资产互操作性,能够在 SAP Cloud Platform Integration 中重用云集成内容。 SAP ...

    pr及PO控制

    - 使用事务代码ME22N可以查看并修改PO,但涉及价格、数量的重大变更需特别注意,并可能触发重新审批流程。 #### 3. PO与发票验证 - 收到供应商发票后,需通过事务代码MIRO进行验证,确保发票与PO、GR(Goods ...

    Appium使用po实例和封装打包

    在本案例中,“Appium使用po实例和封装打包”指的是如何利用Page Object模式来设计测试脚本,并进行测试框架的模块化封装,以便提高测试代码的可读性和可维护性。 Page Object模式是软件测试领域中一种最佳实践,...

    PCS 7的PO(过程对象)授权统计方式.pdf

    总的来说,统计PCS 7的PO授权是一项复杂的任务,需要根据项目的需求、使用的控制对象和PCS 7的具体版本来确定AS RT PO和OS RT PO的数量。正确统计和购买授权对于确保PCS 7系统的正常运行至关重要,同时也关系到项目...

    PCS7的PO授权统计方式

    检查AS RT PO使用情况,可以参考PCS 7 V7.0的"Configured Process Objects"或V7.1的"PCS7 License information"。 2. OS RT PO(OS实时过程对象): OS RT PO则是关于OS站(操作员站和服务器)上运行的过程对象。...

    Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。

    通过以上示例可以看出,Spring框架不仅能够有效地组织各层之间的交互,还能极大地简化开发工作,提高代码的质量和可维护性。此外,Spring还具有良好的扩展性和社区支持,这使得它成为构建现代Java应用程序的理想选择...

    SMSL双木三林PO100说明书.pdf

    使用PO100时,首先需要确保你的播放软件支持DoP输出。在MAC系统中,可以直接连接PO100进行播放。对于Windows系统,需要先安装驱动程序。接下来,将PO100通过光纤或同轴线连接到支持DoP64的DAC。在播放软件中设置DoP...

    用BAPI_PO_CHANGE修改(ME23N)PO出貨日期的方法

    ### 使用BAPI_PO_CHANGE修改(ME23N)采购订单(PO)出货日期的方法 在SAP系统中,采购订单(Purchase Order, PO)管理是供应链管理中的一个关键环节,涉及采购请求、供应商选择、合同谈判等多个流程。在实际业务操作...

    Appium Java使用po实例和封装打包

    在“Appium Java使用po实例和封装打包”这个主题中,我们将深入探讨如何使用Java与Appium结合,实现高效且可维护的测试脚本。 首先,让我们了解什么是PO(Page Object)模式。在自动化测试领域,PO模式是一种设计...

    po与vo区别.doc

    在Java开发领域,尤其是涉及到Spring框架以及数据持久化时,我们常常会遇到...了解并正确使用PO和VO可以帮助我们更好地组织代码,提高代码的可维护性和可扩展性。在实际开发中,应根据项目需求灵活运用这两种对象模式。

    PO Auto-Translate1.0.4558 老朽痴拙汉化版 (自动手动PO翻译器.net)

    并可自动把选中的项目使用PO /pot设置指定的语言 通过GoogleTranslateAPI.dll得出翻译或反向翻译结果, 也可手动翻译结果... 能与Windows XP以上(32位或64位)兼容.在x64计算机上以一个64位进程运行。 注意:自动翻译...

    关于VO、PO的理解——java的(PO,VO,TO,BO,DAO,POJO)解释

    与 PO 不同,VO(Value Object)是值对象,它是业务对象,是存活在业务层的,是业务逻辑使用的。VO 的属性是根据当前业务的不同而不同的,也就是说,它的每一个属性都一一对应当前业务逻辑所需要的数据的名称。 PO ...

    SAP中间件PO技术总结

    SAP中间件PO技术是SAP企业应用集成(Enterprise Application Integration, EAI)的重要组成部分,主要涉及SAP Process Orchestration(简称PO)的配置和实施。PO作为一个全面的集成平台,结合了XI(Exchange ...

    java po 转换 c# po

    自动根据配置文件中的java 自动 转换为 C# po 2.有版本控制功能,工具会自动对比老文件和新文件,会自动添加“修改记录”,版本号自动加1(使用该功能,必须将新文件输出路径和老文件路径一样,否则无法使用) 3.该...

    PI-PO的SPEC PI-PO的SPEC

    PI-PO的SPECPI-PO的SPECPI-PO的SPEC

    po vo dto bo to

    - 在实际开发中,PO对象常用于封装数据层查询或修改的结果,便于在其他层(如业务逻辑层或表现层)使用。 #### 三、VO (Value Object) 值对象 **定义:** - VO是一种只包含数据属性的简单Java对象,通常用于封装...

    SAP PI/SAP PO 详细教程(手把手教学)

    3. SAP PI/PO消息监控器:使用`http://IP:PORT/dir/start/index.jsp`,你可以下载报文、重发消息,便于故障排查和管理。 二、SAP PO接口配置与模型设计 1. SAP PO的发展历程:从SAP XI 1.0到SAP PI 7.x,再到SAP PO...

Global site tag (gtag.js) - Google Analytics