【发布时间】:2014-11-10 10:34:44
【问题描述】:
我有以下代码 sn-p
function func1(){
return makeReadbleStream1()
.pipe(transformA)
.pipe(transformB)
.pipe(transformC)
.pipe(X);
}
function func2(){
return makeReadbleStream2()
.pipe(transformA)
.pipe(transformB)
.pipe(transformC)
.pipe(Y);
}
函数 1 和 2 共享一个共同的逻辑,即通过变换 A、B 和 C。基于 DRY 的原理,我认为最好将逻辑提取到函数 combineTransformABC 中。但是,在我看来,没有明显的方法可以基于 transformA、B 和 C 来实现这个函数,这样我就可以重构代码如下。
function func1(){
return makeReadbleStream1()
.pipe(combinedTranformABC)
.pipe(X);
}
function func2(){
return makeReadbleStream2()
.pipe(combinedTranformABC)
.pipe(Y);
}
有什么想法吗?
【问题讨论】: