【发布时间】:2021-09-04 20:02:29
【问题描述】:
我现在有三个班,一个是主班,
A 类:
class A{
int result;
int getHeightBase() {
return result;
}
void setHeightBase(int h, int b) {
result=h*b;
}
}
B 类:
这个类将执行与 A 不同的计算
class B{
int result;
int getHeightBase() {
return result;
}
void setHeightBase(int h, int b) {
result=12*h*b;
}
}
主类:
public class Main {
public static void main(String[] args) {
A a= new A();
B b= new B();
calculateArea(a,b);
}
void calculateArea(A obj1, B obj2){
obj1.setHeightBase(5,6);
obj2.setHeightBase(5,6);
}
}
现在,当我更改 A 类方法 setHeightBase 或 B 类方法 setHeightBase 的参数时,由于某种原因,我必须更改 MainClass 以及发送整数值的位置,我认为这与设计模式相反,谁能指导我如何摆脱这个,我想稍后更改参数,但我不想影响任何其他类或更改任何其他类,我尝试使用接口但没有得到如何摆脱这个问题 非常感谢,任何帮助将不胜感激
【问题讨论】:
-
“我认为这与设计模式相反”,不,不是,这里没有使用设计模式。您必须发送预期的参数,这是其工作原理的基础。 “我想稍后更改参数,但我不想影响任何其他类”使用更改的签名创建一个新的重载方法
-
请提供示例,我是初学者,所以这对我有很大帮助,但正如您所说,假设其他 20 个类正在调用此方法并将 Integer 值作为 MainClass 发送,如果我更改方法并减少或增加一些参数,那么我必须更改所有其他 20 个文件才能使其正常工作,你不认为这是一个不好的做法吗?
-
那是怎样的“坏习惯”?你期望调用不存在的方法是好的做法吗?
-
不,我的意思是有没有一种方法我们只更改一个文件,而所有其他文件都将自动更新,任何采用该函数的接口都可以更改其参数?
-
正如我所说:重载你的方法。我在我的回答中展示了一个例子
标签: java class methods interface arguments