【发布时间】:2015-11-03 09:23:54
【问题描述】:
我有一个实用程序类,我在其中保存了对象和其他对象,java 类调用了这个对象。所有的变量和方法在这里都是静态的。我想知道这是否是一个好习惯。我的应用程序是否存在任何安全威胁。
public class ObjectHolderUtil {
/**
* Object of the main stage of the application
*/
public static Stage mainStage;
public static HibernateSession hibernateSession;
public static String dashboard="/fxml/Dashboard.fxml"; //dashboard fxml file
public static String mainScreen="/fxml/MainScreen.fxml";
public static String addBill="/fxml/AddBill.fxml";
public static StackPane mainStackPane;
public static User user;
public static Helper helper;
public static String getMainScreen() {
return mainScreen;
}
public static void setMainScreen(String mainScreen) {
ObjectHolderUtil.mainScreen = mainScreen;
}
public static Helper getHelper() {
return helper;
}
public static void setHelper(Helper helper) {
ObjectHolderUtil.helper = helper;
}
public static User getUser() {
return user;
}
public static void setUser(User user) {
ObjectHolderUtil.user = user;
}
public static StackPane getMainStackPane() {
return mainStackPane;
}
public static void setMainStackPane(StackPane mainStackPane) {
ObjectHolderUtil.mainStackPane = mainStackPane;
}
public static Stage getMainStage() {
return mainStage;
}
public static void setMainStage(Stage mainStage) {
ObjectHolderUtil.mainStage = mainStage;
}
public static String getDashboard() {
return dashboard;
}
public static void setDashboard(String dashboard) {
ObjectHolderUtil.dashboard = dashboard;
}
public static HibernateSession getHibernateSession() {
return hibernateSession;
}
public static void setHibernateSession(HibernateSession hibernateSession) {
ObjectHolderUtil.hibernateSession = hibernateSession;
}
}
我会把这个类的对象称为
ObjectHolderUtil.setMainStackPane(mainStackPane);
【问题讨论】:
-
考虑使用单例,还是使用带有单个实例化的普通类?
-
没有必要让一切都是静态的。也许这个类应该是一个单例。也不要将您的类变量公开。它们应该是私有的。
-
@Bathsheba - 如果这只是一个实用程序类,那么将构造函数设为私有就足够了,对吧?
-
这个问题在 CodeReview 上可能更合适。
-
@VinodMadyalkar 是的,我同意,将一个类命名为“Helper”太抽象了。
标签: java oop design-patterns