论坛首页 Java企业应用论坛

编程中一个很常见的问题,有帮助的

浏览 29348 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (17)
作者 正文
   发表时间:2008-12-12  
frogfool 写道
能否给个应用场景?否则就是完全无意义的讨论。
这是需要根据应用需求决定方法划分的粒度问题,而且LZ给的例子也有误导性。
“第一个”testX()都缺少自己的logicCode
第一个  
public void test1() throws E2,E3,E4,E5,E6{  
    test2();
    logicCode1();
}
第二个
public void test1() throws E2,E3,E4,E5,E6{
    logicCode1();
}  


问题不在于test()该怎么调用下层方法,
而在于test1()是否要包含调用test2()?!
test1是否要被其他上层代码调用

为什么楼主不回答frogfoo1的问题呢?
0 请登录后投票
   发表时间:2008-12-12  
这个还是要看具体的业务
第一种利于分层,如传统的ssh层次:
action-->service-->dao
0 请登录后投票
   发表时间:2008-12-12  
我也来回答一下,我看了之后好像想起点什么??....如果把第一中的五个text分别放在五个类中,不第二中的五个方法放在一个类中,
第一种不是分层吗??
第二中不是pojo类吗???
好像讨论两种架构的问题啊,
呵呵随便说说,
0 请登录后投票
   发表时间:2008-12-12  
fhjxp 写道
frogfool 写道
能否给个应用场景?否则就是完全无意义的讨论。
这是需要根据应用需求决定方法划分的粒度问题,而且LZ给的例子也有误导性。
“第一个”testX()都缺少自己的logicCode
第一个  
public void test1() throws E2,E3,E4,E5,E6{  
    test2();
    logicCode1();
}
第二个
public void test1() throws E2,E3,E4,E5,E6{
    logicCode1();
}  


问题不在于test()该怎么调用下层方法,
而在于test1()是否要包含调用test2()?!
test1是否要被其他上层代码调用

为什么楼主不回答frogfoo1的问题呢?


已经给出一个背景了,就是 根据用户输入--》组装SQL-》执行数据库操作-》返回结果(解析结果)
0 请登录后投票
   发表时间:2008-12-12  
个人觉得还是di4二种比较好,比如说我们使用DAO层的目的不就是为了使每个DAO只是针对某一个pojo类的接口,这样在service层再根据自己的需要来进行相关逻辑的组织。我们可以这样来看待楼主列举的例子,test1到test4每一个是一个DAO接口,而TEST方法是service层的一个接口这样不就是在service层中来调用的不同的DAO来实现自己的逻辑吗,如果是第一种方法不就是让每个DAO之间进行了耦合吗这也不符合MVC分层实现的目的啊。个人看法。
0 请登录后投票
   发表时间:2008-12-12  
难道就是想说策略模式的多用组合少用继承这个原则?
0 请登录后投票
   发表时间:2008-12-12  
我想说lz的问题很无聊,而且还有点自大,没有最好的模式,只有最好的架构,任何技术的出现都是要解决实际的业务问题,你冠冕堂皇问的这个问题,实在是......
0 请登录后投票
   发表时间:2008-12-12  
补充一下 

按照你这简单的逻辑  “A调用B B调用C C调用D 还是由A同一去调用B C D的问题。”

第一 ,方法之间的调用方式 不是一个简单的技术问题,跟架构有关,跟代码覆盖率有关,跟业务需求有关,跟代码的易变性有关,也跟代码通用度有关.....

第二 ,你什么时候(需求,设计,编码,重构?),如何保证 A调用B B调用C C调用D  跟 A同一去调用B C D 时参数的稳定性(即BCD参数 不变)

第三 ,本事我想回帖,但看到你好像对二楼的回帖中包含
"小菜"之类的字眼 所以忍不住回帖,不排除打抱不平的心理,或许 第三条才是第一条


1 请登录后投票
   发表时间:2008-12-12  
v861 写道
补充一下 

第三 ,本事我想回帖,但看到你好像对二楼的回帖中包含
"小菜"之类的字眼 所以忍不住回帖,不排除打抱不平的心理,或许 第三条才是第一条


so do I
0 请登录后投票
   发表时间:2008-12-12   最后修改:2008-12-12
fjlyxx 写道


已经给出一个背景了,就是 根据用户输入--》组装SQL-》执行数据库操作-》返回结果(解析结果)



问题已经很清楚了
public Object findUser(final Map parameters) {
return this.getSqlMapClientTemplate().queryForObject("findUser", parameters);
//      |                      |                                                          |  
//   返回结果       组装SQL并执行数据库操作                         根据用户输入
}
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics