`
sagah
  • 浏览: 3914 次
  • 性别: Icon_minigender_1
  • 来自: 萧山
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

如何更高效的在层与层之间调用

阅读更多

      遇到一个新的框架,分为Action,AO,BO,DAO,Service这几层。Action层基于CoC。AO,BO,DAO又使用的是Spring管理的。Action与AO间使用的名称调用,如:


private String AOName = "cpsMyAuctionAO";

。。。。。

Result result = executeCommand(AOName, "createCpsMyAuction", param);


cpsMyAuctionAO就是action要调用的AO,param是入参,createCpsMyAuction是需要调用的方法。

result就是执行的结果了。


看了底层的代码,是通过一个CommandDispatcherSelector来读取上下文,并通过参数调用AO。但是对于调用的管理难度加大了,当类多起来的,查找之间的关系很困难。请问各位高手有什么更好的解决办法?

分享到:
评论
36 楼 damoqiongqiu 2008-12-13  
spyker 写道
是web项目么?

我做过的web项目一般都是 action-service-dao-pojo
没有搞2个service层的

至于调用
action 调用 service
service 调用 dao
pojo作为各层之间传输对象

你们那个分层 如果是以前的 你可以吸收下有点
自己改的机会大么?

我们一般也是这么干的
经过了Spring的一番折腾,除了一堆配置文件找来找去,代码根本没法读之外
我们又回到了最初的简单,当然我们在编程的时候自己用了一些Spring的思想在里面
现在感觉整个程序响应速度很快
35 楼 sdh5724 2008-12-09  
xyf_84 写道
搞那么多层,累不累啊?


等到了有几千个URL的时候, 你就知道这些不累了。
34 楼 绝对任逍遥 2008-12-09  
汗,我不是想逃避编码,我崇尚追求设计的快感,我晓得基本功的重要性,也知道架构从实践中成熟
33 楼 xyf_84 2008-12-09  
搞那么多层,累不累啊?
32 楼 gembler 2008-12-09  
绝对任逍遥 写道
没法啊,相比于编码工作,我更喜欢优雅的设计,这是我从进入这个专业一直追求的,框架设计可以有更多的思想性,心甘情愿,呵呵,不过我的基础现在还够不上我知道,我在充电ing


你以为是光想不编吗?
不去编一下,你怎么知道自己的设计是具有可行性呢?
就算你凭以往的经验来确定这个可行性,以后呢?技术发展突飞猛进,不编码,这架构职位能站多久?
31 楼 sdh5724 2008-12-09  
绝对任逍遥 写道
没法啊,相比于编码工作,我更喜欢优雅的设计,这是我从进入这个专业一直追求的,框架设计可以有更多的思想性,心甘情愿,呵呵,不过我的基础现在还够不上我知道,我在充电ing


又一个以为架构不写代码的。。。。
30 楼 绝对任逍遥 2008-12-09  
没法啊,相比于编码工作,我更喜欢优雅的设计,这是我从进入这个专业一直追求的,框架设计可以有更多的思想性,心甘情愿,呵呵,不过我的基础现在还够不上我知道,我在充电ing
29 楼 sdh5724 2008-12-07  
绝对任逍遥 写道
正在学webx框架,看我是新人吧,这都会说错,以前用struts2 和 hibernate3,现在一时还转不过弯弯,我崇尚设计模式,自己也学了很多,还需要更长期的实践学习,希望有一天进架构团队



别想着进架构团队了, 都是些料理后事, 与混乱做斗争的事情。 除非你那么好的耐心。
28 楼 绝对任逍遥 2008-12-06  
正在学webx框架,看我是新人吧,这都会说错,以前用struts2 和 hibernate3,现在一时还转不过弯弯,我崇尚设计模式,自己也学了很多,还需要更长期的实践学习,希望有一天进架构团队
27 楼 绝对任逍遥 2008-12-06  
偶也是,呵呵,刚进公司一周,还没有培训,正在看web,我是从学校出来的新人,基础薄弱,很费力气,正在加油!fighting!!
26 楼 xuyao 2008-12-05  
直接struts2有什么不行吗?都是注入的。。。。为啥用这种方法调用,又不是异构系统,这不是自己找事嘛。。。
25 楼 dboyhm 2008-12-04  
eyeieye 写道
这个Command其实不是Command:不是Command模式中,因为本身无非只是一个map而已。
AO的问题我理解成初期打算做成web层连接一个集群的app层,类似史前时代的ejb1,2....但没想后来web和app整体做了一个集群,这个本来看起来很美丽的东西就变成了鸡肋

24 楼 sdh5724 2008-12-04  
   we want to deprecate the framework.
23 楼 dboyhm 2008-12-04  
sagah 写道
sdh5724 写道

内部讨论这个问题吧, 实际上, 如果你在B2B, 这是我造成的问题. 惭愧.
我们在明年开始解决着个COMMAND设计模式造成的问题.

好几年了,这个问题是该框架一直无法解决的问题。虽然有许多的问题,但是这个框架仍然值得称道。作者宝宝果然是大牛。我也期待你们能尽早解决这个问题。同时也希望网上的各位大侠提出宝贵的意见。




是!
22 楼 cuiyi.crazy 2008-12-03  
gloomyd 写道
这个框架出来的时候  好像spring还没有怎么兴起
在国内也不怎么出名
所以没有采用spring的


看到这里,这个团队已经有好几个大师出来说话了,真好....
21 楼 cuiyi.crazy 2008-12-03  
spyker 写道
fnet 写道
这还用说,Spring的依赖注入就是最好的。使用Annotation注入更好。



我不喜欢annotation注入
还是觉得xml配置set注入好点

我觉得如果从长期运营维护角度看,会优先选择xml;
如果从开发角度看,会优先选择annotation;
如果经历过中大型软件维护经历的人会倾向xml方案

他们的东西是给自己用,维护是大头,如果从长久维护运营来看,xml绝对胜于annotation;
20 楼 cuiyi.crazy 2008-12-03  
stone2083 写道
在不了解一家公司需求背景和规模的前提下,在不了解AO/BO所充当的真正角色的前提下,妄下结论,说是过渡设计。这是不负责任的。
在了解业务规模以及了解AO/BO/DAO的真正含义之后,我不觉得这是过渡设计的问题。

现在最大的问题是,
1)新人不了解AO/BO充当的角色,内部培训没有做好,反倒要在外网上讨论这个问题。这是不应该的--当然,我们对AO/BO也确实没有一个明确的定义;
2)对于AO的管理,也有待明确;
3)web层调用AO的方式,有待改进,太麻烦了--当然不是说command模式不好--它确实灵活,可以使web层和service层分离部署。


哈哈,这个兄弟说不应该在外网讨论的同时,泄露了更多的信息出来 :) 嘿嘿
不过从评论看来确实是有相当的技术底蕴的企业
莫非这个AO意义上有点类似SCA? 意识如此超强? 继续猜敲
19 楼 sagah 2008-12-02  
eyeieye 写道
这个Command其实不是Command:不是Command模式中,因为本身无非只是一个map而已。
AO的问题我理解成初期打算做成web层连接一个集群的app层,类似史前时代的ejb1,2....但没想后来web和app整体做了一个集群,这个本来看起来很美丽的东西就变成了鸡肋

没有明白,请详细的说一下。
18 楼 eyeieye 2008-12-02  
这个Command其实不是Command:不是Command模式中,因为本身无非只是一个map而已。
AO的问题我理解成初期打算做成web层连接一个集群的app层,类似史前时代的ejb1,2....但没想后来web和app整体做了一个集群,这个本来看起来很美丽的东西就变成了鸡肋
17 楼 icewubin 2008-12-02  
只有足够复杂了,才需要command模式,如果目前有其他很简单的方法就能解决的,没必要用啊。

相关推荐

    NDK开发so层与java代码相互调用

    JNI是Java和本地代码之间的桥梁,它定义了一套接口,使得Java代码可以通过这些接口调用本地函数,反之亦然。 ### 创建本地方法 创建本地方法需要以下步骤: 1. **定义JNI接口**:在Java类中声明本地方法,但不实现...

    LINUX的系统调用与函数调用.pdf

    系统调用作为用户层和核心层之间的桥梁,使得应用程序能够安全、有序地访问系统资源。 在Linux系统中,系统调用通常是通过C语言的函数库形式来使用的。这意味着程序员可以像调用普通函数一样调用系统调用,如`open...

    JNI中C层调用Java层函数

    通过声明`native`方法、生成C头文件、编写C代码以及编译动态链接库,我们可以实现C层调用Java层函数,从而在两个层面之间灵活地交换数据和控制流程。在这个示例工程中,你可以进一步学习和实践这些步骤,加深对JNI的...

    asp.net三层 jquery调用后台数据例子

    在三层架构中,BLL作为表示层和数据访问层之间的桥梁,处理复杂的业务操作。 3. 数据访问层(Data Access Layer, DAL):这一层专注于数据库交互,如查询、插入、更新和删除数据。它通常通过ADO.NET或其他ORM(对象...

    Android各个层次之间的相互关系

    在Android操作系统中,应用程序的执行和交互涉及到多个层次的组件,这些层次之间的关系构成了Android系统的架构。...通过深入学习这些层次,开发者能够设计出更高效、更稳定、更适应Android系统特性的应用程序。

    2000_Delphi最新三层源码_delphi三层架构_DELPHI三层_三层_源码

    2. **DAO层(Data Access Objects层)**:这一层位于数据连接层之上,是业务逻辑层与数据库之间的桥梁。DAO层封装了数据库操作的具体细节,提供了一组接口或类供上层调用,如数据增删改查(CRUD)操作。这样做的好处...

    android 与 lua 相互调用

    本文将深入探讨Android与Lua之间的相互调用机制,以及如何在实际项目中实现这一功能。 首先,让我们了解Lua。Lua是一种轻量级的脚本语言,其语法简洁且易于学习,适用于嵌入式系统和游戏开发。它提供了丰富的数据...

    远程调用服务框架

    在远程调用服务方面,Spring通过服务抽象层,如ServiceRepository,简化了客户端对远程服务的调用。ServiceRepository作为一个服务仓库,存储了服务的元数据,允许客户端通过服务ID和服务接口来查找和调用相应的服务...

    接口调用jar包

    在IT行业中,接口调用是系统之间进行通信的常见方式,尤其在分布式系统或微服务架构中尤为关键。jar包,全称为Java Archive,是Java编程语言中的库文件格式,用于封装类、资源和元数据,便于代码复用和部署。在本...

    专题三:操作系统知识

    - **分层视角**:从系统构建的角度来看,操作系统被划分为多个层次,每一层都有特定的功能,且层与层之间相互依赖。 #### 3. 操作系统的硬件基础 - **中断**:操作系统通过中断机制实现对外部事件的响应,中断处理...

    驱动和应用层的三种通信方式

    在计算机系统中,驱动程序和应用层之间进行通信是实现硬件功能和软件交互的关键环节。本文将详细探讨驱动和应用层之间的三种主要通信方式:系统调用、消息队列以及直接内存访问(DMA)。 首先,系统调用是驱动与...

    多层体系结构开发模式

    - 在通用层,我们可以创建一个Publisher实体类,用于在不同层之间传递和表示Publishers表中的数据。 总的来说,多层体系结构开发模式通过明确的职责划分,使得开发团队可以更高效地协作,同时降低了系统的复杂性。...

    java方法调用

    方法调用有两种主要方式:在一个类内部的方法调用与不同类之间的方法调用。目前我们先聚焦于一个类内部的方法调用。 ##### 1. 类内部的方法调用 在同一个类内部,方法调用相对简单。方法调用的语法取决于方法是否...

    C#调用java直接调用无需生成.net组件

    本主题聚焦于"C#调用java",探讨如何在C#应用中直接调用Java代码,而无需通过生成.NET组件来实现这一目标。这样的做法能带来更高的稳定性和速度。 首先,我们需要理解的是,C#和Java属于两种不同的编程语言,它们...

    windows 驱动 应用层与驱动层通信(读、写文件) 源码

    Windows驱动程序框架(WDF)和Windows驱动模型(WDM)是两种常见的驱动开发接口,用于实现应用层与驱动层之间的通信。本篇将深入探讨这两种框架下的读写文件操作以及IOCONTROL机制。 首先,我们来看一下应用层与...

    Android上层与驱动交互完整篇(APK->JNI->HAL->DRV)

    JNI是Java和C/C++之间的桥梁,它允许Java代码在需要时调用本地方法,从而实现与硬件驱动的低级交互。JNI接口定义了Java和C/C++之间的数据类型转换规则,以及函数调用方式,确保了跨语言的兼容性。 接下来是HAL层,...

    最新三层架构设计源码

    - **解耦**:各层之间有明确的接口定义,减少了层与层之间的依赖,使得修改某一层不会影响其他层。 - **可复用性**:由于各层的独立性,可以单独重用某个层的代码,比如BLL可以在多个项目中复用。 - **可测试性**:...

    Vb.net三层架构

    - **松耦合**:各层之间有明确的接口,改变一层不会影响其他层,提高了代码的可维护性和可扩展性。 - **模块化**:每一层都可以独立开发和测试,降低了开发复杂度。 - **复用性**:业务逻辑层可以被多个界面调用,...

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

    ### Spring框架在中间层的应用与整合 #### 一、Spring框架概述 Spring是一个开源的轻量级Java EE框架,主要用于简化企业级应用的开发过程。它通过提供一系列的基础设施服务,如依赖注入(Dependency Injection, DI...

    Python-高效的RPC命令调用框架

    在本主题中,我们将重点讨论基于zerorpc和gevent的高效RPC命令调用框架。zerorpc是一个Python实现的轻量级RPC库,它基于msgpack作为序列化协议,而gevent是一个强大的事件驱动库,通过协程实现高效的并发。 首先,...

Global site tag (gtag.js) - Google Analytics