0

我计划在下面重构我的代码

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)

或任何想法来重构这样的代码?提前谢谢。

4

1 回答 1

0

您没有指定您正在使用的语言,但我遇到的大多数语言都支持函数重载

这意味着您可以声明两个具有相同名称但采用不同参数的独立函数,然后当您调用函数并执行适当的函数时,语言将检查您传递的参数:

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;
            ...
        }
    }
}
于 2012-05-30T16:27:01.453 回答