【发布时间】:2021-08-16 02:18:24
【问题描述】:
我有一个用“打印”方法显示的类
public class View {
public View() {
}
public void print(String str) {
System.out.println(str);
}
}
和带有逻辑的类,例如,我将在哪里使用 View 类对象
public class Logic {
public Logic() {
}
}
我什么时候必须创建对象:在构造函数中还是在方法中,哪个会使用这个对象?
public class Logic {
private View view;
public Logic() {
view = new View():
}
public someMethod(String string){
view.print(string);
}
}
或
public class Logic {
public Logic() {
}
public someMethod(String string){
View view = new View();
view.print(string);
}
}
【问题讨论】:
-
为什么是这些对象? “逻辑”是否包含“视图”?它们中的任何一个都封装了 any 现实世界的概念吗?如果它们只是代码的容器,那么您应该首先使用静态方法而不是分配任何对象。 “把所有东西都扔到一个不做任何事情的对象中”的心态已经过时,只有在 90 年代学会编程并且从未学习过任何最新材料的教师教授。
-
考虑通过构造函数参数在逻辑中传递视图。
-
好吧,如果要调用非静态方法,则需要创建一个对象。是在构造函数中创建对象并重用它还是在方法中创建它取决于您,并且取决于其他因素。在您的情况下,
print()甚至不必是实例方法,因此对于该特定方法,根本不需要实例(当然该方法必须是静态的)。