如何从多个类访问同一对象?
我正在使用窗口构建器制作用于书店管理的Java应用程序,有不同类型的用户,每个用户有不同的面板。
我需要有权访问bookStore类的更新对象(例如),以访问书籍的更新列表和用户列表,因此我可以对其进行添加或更改。 我看了单例设计模式,但不知道是否可以在这种情况下使用它。我应该使用它吗?如果是这样,有什么弊端吗?
还有另一种方法吗?
答案 0 :(得分: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
这只是一个示例,因此您可以了解单例,但是在现实情况下,应该使用数据库来保留数据,因为单例只会保存数据,直到应用程序停止执行。