详情。在这个问题中,我使用了简单的例子。但在现实生活中,方法中存在巨大的逻辑,只有一个状态变量存在差异。 例。我有两个类具有相同逻辑的方法。这两个类之间的差异在类变量中,在方法中使用。
class A {
private String str = "A";
void method() {
System.out.print(str);
}
}
class B {
private String str = "B";
void method() {
System.out.print(str);
}
}
我认为使用继承我可以实现结果。
abstract class Abs {
void method() {
System.out.print(getStr());
}
abstract String getStr();
}
class A extends Abs {
String getStr() {
return "A";
}
}
class B extends Abs {
String getStr() {
return "B";
}
}
这是好的解决方案吗?或者还有其他任何设计模式可能实现我的目标吗?提前谢谢。
答案 0 :(得分:1)
如果它只是价值的差异,它们应该只是同一类的两个实例。
我只是传递"变量"数据到构造函数并完成它。
class A {
private String str;
public A(String str) {
this.str = str;
}
public void method() {
System.out.print(str);
}
}
然后使用它
A a = new A("a");
A b = new A("b");
a.method(); // prints "a"
b.method(); // prints "b"