【发布时间】:2011-02-26 20:21:01
【问题描述】:
我有两种方法f(vector<int>& x, ....) and g(DBConn& x, ....)
其中 (....) 参数都是相同的。
这两种方法中的代码除了一个语句外完全相同 我们根据 x 的类型执行不同的操作:
in f(): we do x.push_back(i)
in g(): we do x.DeleteRow(i)
将通用代码提取到一种方法中的最简单方法是什么? 有两种不同的说法吗?
我正在考虑使用一个模板化的仿函数来重载运算符 () (int a),但这似乎有点过头了。
【问题讨论】:
-
两者的代码是否会发生不同的演变?如果是这样,请保持原样,因为它们的相似性纯属巧合。
标签: c++ refactoring common-code