我有两个类都构建一个对象,目前这两个类中都有重复的代码,例如这个代码存在于类 1 中:
new Object("a", "b", "c");
构造函数的参数只有一个不同。所以这段代码存在于类 2 中:
new Object("x", "b", "c");
有什么模式可以摆脱这种代码重复吗?
我有两个类都构建一个对象,目前这两个类中都有重复的代码,例如这个代码存在于类 1 中:
new Object("a", "b", "c");
构造函数的参数只有一个不同。所以这段代码存在于类 2 中:
new Object("x", "b", "c");
有什么模式可以摆脱这种代码重复吗?
您可以向该类添加构造函数。
class MyObject {
MyObject(String a) {
this(a, "b", "c");
}
MyObject(String a, String b, String c) {
}
}
@Peter Lawrey 的解决方案很好。但是有一个问题,如果常量参数不变,为什么要将它们传递给对象构造函数?如果删除这些常量参数,您最终会得到:
public MyObject(String a){
this.a = a;
this.b = "b";
this.c = "c";
}