我打算重构下面的代码
1.Class A_Builder to build A_Model
Class A_Builder{
public A_Model build(arg1){
//build A_Model
}
}
2.Class B_Builder to build B_Model
Class B_Builder{
public B_Model build(arg2,arg3){
//build B_Model
}
}
3.Class C_Builder to build C_Model
Class C_Builder{
public C_Model build(arg4){
//build C_Model
}
}
4.Class D_Builder...
一个用于构建模型的构建器,因此我计划使用命令模式来重构它们,将构建方法作为命令,但如何处理不同的变量数,如A是(arg1),B是(arg2,arg3)
或任何想要重构这些代码的想法?提前感谢。
答案 0 :(得分:0)
您尚未指定所使用的语言,但我遇到的大多数语言都支持overloading of functions。
这意味着您可以使用相同的名称声明两个单独的函数,但使用不同的参数,然后语言将检查您在进行函数调用并执行相应函数时传递的参数:
class Builder {
public build( arg ) {
// Build A Model
}
public build( arg, arg ) {
// Build B Model
}
...
}
或者,如果函数参数都是相同的变量类型,则可以简单地创建一个接受参数数组的函数。数组可以是可变长度的,因此您的单个函数可以执行不同的操作,具体取决于数组的长度:
class Builder {
public build( arg[] ) {
switch( arg.length ) {
case 1:
// Build A Model
break;
case 2:
// Build B Model
break;
...
}
}
}