悬赏分:20 浏览:201 次
有A,B,C,D,E,F五个方法,它们的实现相似,仅如下所示的注释部分的代码不一样(我把这一块代码称为内部代码,而将内部代码包起来的代码称为外部代码),
public void A(params...)
{
using(......}
{
//xxxxxxx
//xxxxxxx
}
}
现在的问题是,如果外部代码出现变动,我就得改五个地方,这样很可能会改错,
我的想法是把内部代码做成委托来传递进去,不知道有没有好的方法,高手指点,好像和template pattern又有点不一样
|
好像你的外部代码也不多啊,看看这样行不:
public void A(params...)
{
using (GetObject()) {
//.xxxxx
//xxxxx
}
}
public void GetObject() {
return xxx;
} 代码的复用通过继承实现 不能复用的地方 通过组合的方式将可变部分分离出来(这个可变部分是不可预计的变化) 具体详见设计模式里面的策略模式 如果是所有的过程都一样 不一样的地方仅仅是参数的不同(这里的变化是可以预计的) 具体详见设计模式里面的模板模式 如果动作都一样 但是涉及完成动作的对象不一样 具体详见设计模式里的工厂模式 1天前 lexus : Gray zhang的做法我想到了,制作回调函数,还有其它的方法吗 @lexus 看你说的需求,我感觉应该用工厂方法模式好点. |
|
2个月前 lexus : Gray zhang的做法我想到了,制作回调函数,还有其它的方法吗? |