Как я могу получить доступ к одному и тому же объекту из разных классов - PullRequest
0 голосов
/ 27 декабря 2018

Как я могу получить доступ к одному и тому же объекту из нескольких классов?

Я делаю Java-приложение для управления книжным магазином с помощью Window Builder, есть разные типы пользователей и разные панели для каждого пользователя.

Мне нужен доступ к обновленному объекту класса bookStore (например), чтобы получить доступ к обновленному списку книг, списку пользователей, чтобы я мог добавлять или вносить в него изменения.Я взглянул на шаблон проектирования синглтона, но не знаю, смогу ли я использовать его в подобных ситуациях.Должен ли я использовать это?И если да, есть ли минусы?

Есть ли другой способ сделать это?

1 Ответ

0 голосов
/ 27 декабря 2018

Да, вы можете использовать синглтон для этого.Самый простой способ - использовать Spring , объявить свой BookStore как Bean-компонент в своем классе Application:

@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

Это всего лишь пример, чтобы вы могли узнать о синглетах, но в сценарии реального мира вы должны использоватьбаза данных для сохранения ваших данных, поскольку синглтон будет хранить данные только до тех пор, пока приложение не прекратит работу.

...