我如何从不同的类访问同一对象

时间:2018-12-27 10:36:46

标签: java class singleton instance windowbuilder

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

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

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

还有另一种方法吗?

1 个答案:

答案 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

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