首页 新闻 会员 周边

业务逻辑层怎样处理冗余代码比较好

0
悬赏园豆:160 [已关闭问题] 关闭于 2014-10-24 13:30

比如某个业务逻辑层有2个方法:

public string F_XX()

{

//单独处理逻辑代码,不重复  

//这里的代码重复冗余

}

 

public string F_YY()

{

//单独处理逻辑代码,不重复  

//这里的代码重复冗余

}

现在问题来了,业务逻辑层怎样处理重复的冗余代码比较好。

欢迎讨论

问题补充:

感谢大家回答,我倾向于Spring.net 来帮助实现AOP

木宛城主的主页 木宛城主 | 初学一级 | 园豆:18
提问于:2014-10-24 12:34
< >
分享
所有回答(5)
0

这个足够抽象! 可以上大学讲堂。

爱编程的大叔 | 园豆:30839 (高人七级) | 2014-10-24 12:37
0

建议重复的逻辑代码抽离出来,单独作为一个方法。

libaoheng | 园豆:1433 (小虾三级) | 2014-10-24 12:39

这个方法放在哪儿比较好

支持(0) 反对(0) 木宛城主 | 园豆:18 (初学一级) | 2014-10-24 12:41
0

提取方法

刘宏玺 | 园豆:14020 (专家六级) | 2014-10-24 12:39

这个方法放在哪儿比较好

支持(0) 反对(0) 木宛城主 | 园豆:18 (初学一级) | 2014-10-24 12:41

@木宛城主: 这就要看通用性了,放在能够通用的最高层

支持(0) 反对(0) 刘宏玺 | 园豆:14020 (专家六级) | 2014-10-24 12:43
0
public string Always()

{
//这里的代码重复冗余
}


public string F_XX()

{

//单独处理逻辑代码,不重复  



Always()
}

 

public string F_YY()

{

//单独处理逻辑代码,不重复  

Always()


}
小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2014-10-24 13:06
0

楼上都说的什么呀。对于程序设计,在初期就要考虑好各个类所代表的含义,在含义的基础上屡清逻辑,自然就有从属关系的逻辑了。

写个父类---方法如下:

 1 public class Father {
 2     /**
 3      * @Name 
 4      * @Description 逻辑上的从属关系
 5      * @Attention 包含公共方法·有此属性的继承该类
 6      * @ReturnType void NULL
 7      * @Tags 
 8      * @Author CaiYj
 9      * <br>2014-10-24下午01:41:25
10      */
11     public void doSth() {
12         //TODO 可能重复的代码
13     }
14 }
View Code
 1 /**
 2  * @Name Son1
 3  * @Description 建立多个类似这样的类
 4  * @Attention 【或者】
 5  * @Tags 
 6  * @Author CaiYj
 7  * <br>2014-10-24下午01:44:41
 8  */
 9 public class Son1 extends Father{
10     public void doSth() {
11         super.doSth();
12     }
13     
14     
15     
16     //----------------------或者--------------------------
17     
18     public void F_xx() {
19         /**
20          * 公共方法
21          */
22         super.doSth();
23     }
24     
25     public void F_yy() {
26         /**
27          * 公共方法
28          */
29         super.doSth();
30     }
31 }
View Code

当然,具体逻辑要具体分析。楼主设计的时候不用考虑那么多技巧,代码在堆积的过程中不断改进,自然水到渠成……

CaiYongji | 园豆:1267 (小虾三级) | 2014-10-24 13:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册