首页 > 解决方案 > 如何从不同的类访问同一个对象

问题描述

如何从多个类访问同一个对象?

我正在使用窗口构建器制作一个用于书店管理的 Java 应用程序,有不同类型的用户,每个用户都有不同的面板。

我需要访问类 bookStore 的更新对象(例如)以访问更新的书籍列表、用户列表,以便我可以添加或更改它。我看了一下单例设计模式,但我不知道我是否可以在这种情况下使用它。我应该使用它吗?如果是这样,有什么缺点吗?

还有另一种方法吗?

标签: javaclasssingletoninstancewindowbuilder

解决方案


是的,您可以为此使用单例。最简单的方法是使用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

这只是一个示例,因此您可以了解单例,但在实际场景中,您应该使用数据库来保存数据,因为单例只会保存数据,直到您的应用程序停止执行。


推荐阅读