消除构建同一对象的类似副本的重复代码

时间:2011-11-12 15:11:37

标签: java duplication

我有两个构建对象的类,目前这两个类中都有重复的代码,例如这个代码存在于类1中:

new Object("a", "b", "c");

构造函数中只有一个参数有所不同。所以这段代码存在于第2课:

new Object("x", "b", "c");

是否有任何模式可以摆脱此代码重复?

2 个答案:

答案 0 :(得分:5)

您可以在类中添加构造函数。

class MyObject {
    MyObject(String a) {
       this(a, "b", "c");
    }

    MyObject(String a, String b, String c) {
    }
}

答案 1 :(得分:1)

@Peter Lawrey的解决方案很好。 但是有一个问题,如果不改变,为什么要将常量参数传递给对象构造函数呢? 如果删除这些常量参数,最终会得到:

public MyObject(String a){
   this.a = a;
   this.b = "b";
   this.c = "c";
}