[已解决问题] 可能是设计模式的问题
提问时间: 2008-08-24 14:02
悬赏分:20 浏览:201 次

有A,B,C,D,E,F五个方法,它们的实现相似,仅如下所示的注释部分的代码不一样(我把这一块代码称为内部代码,而将内部代码包起来的代码称为外部代码),

public void A(params...)
{
     using(......}
     {
         //xxxxxxx
         //xxxxxxx
     }
}

现在的问题是,如果外部代码出现变动,我就得改五个地方,这样很可能会改错,
我的想法是把内部代码做成委托来传递进去,不知道有没有好的方法,高手指点,好像和template pattern又有点不一样

提问者:lexus - 初学一级
最佳答案
外部代码提取为一个方法,此方法接受一个委托作为参数即可
2008/8/24 15:29:02 回答者:Gray Zhang
其它回答(3)
好像你的外部代码也不多啊,看看这样行不: public void A(params...) { using (GetObject()) { //.xxxxx //xxxxx } } public void GetObject() { return xxx; }
2个月前   回答者:水言木 - 菜鸟二级
代码的复用通过继承实现 不能复用的地方 通过组合的方式将可变部分分离出来(这个可变部分是不可预计的变化) 具体详见设计模式里面的策略模式 如果是所有的过程都一样 不一样的地方仅仅是参数的不同(这里的变化是可以预计的) 具体详见设计模式里面的模板模式 如果动作都一样 但是涉及完成动作的对象不一样 具体详见设计模式里的工厂模式
2个月前   回答者:小眼睛老鼠 - 小虾三级
1天前 lexus : Gray zhang的做法我想到了,制作回调函数,还有其它的方法吗 @lexus 看你说的需求,我感觉应该用工厂方法模式好点.
2个月前   回答者:老尧 - 老鸟四级
评论
2个月前   lexus :
Gray zhang的做法我想到了,制作回调函数,还有其它的方法吗?
   您需要登录以后才能回答!
 

我要提问

我的问题


快到期问题



> 问题排行榜

相关内容

相关链接