【问题标题】:How can I have access to the same object from different classes如何从不同的类访问同一个对象
【发布时间】:2018-12-27 10:36:46
【问题描述】:
如何从多个类访问同一个对象?
我正在使用窗口构建器制作一个用于书店管理的 Java 应用程序,有不同类型的用户,每个用户都有不同的面板。
我需要访问类 bookStore 的更新对象(例如)以访问更新的图书列表、用户列表,以便我可以在其上添加或更改。
我看了一下单例设计模式,但我不知道我是否可以在这种情况下使用它。我应该使用它吗?如果是这样,有什么缺点吗?
还有其他方法吗?
【问题讨论】:
标签:
java
class
singleton
instance
windowbuilder
【解决方案1】:
是的,您可以为此使用单例。最简单的方法是使用Spring,在 Application 类中将 BookStore 声明为 Bean:
@Bean
public BookStore getBookStore(){
return new BookStore();
}
然后,在您需要引用它的每个类中,将您的 bookStore 声明为 @Autowired 对象,以便 Spring 自动找到您的 BookStore 单例并注入它。例如:
@Service
public class BookService {
@Autowired
private BookStore bookStore; //This variable will reference your BookStore singleton.
public List<Book> getBooksFromStore(){
return bookStore.getBooks();
}
}
您可以在此处了解有关 Spring 的更多信息:
https://www.baeldung.com/spring-tutorial
这只是一个示例,因此您可以了解单例,但在实际场景中,您应该使用数据库来保存数据,因为单例只会保存数据,直到您的应用程序停止执行。