На диаграмме Calss по ссылке ниже я хочу реализовать диаграмму классов в java-коде, используя шаблон проектирования, один из них - использовать абстрактную фабрику или метод фабрики и разрешить только один экземпляр любого фабричного типа, который вы создаете (singleton дизайн шаблона).
нажмите на ссылку, чтобы просмотреть диаграмму классов
Я создал хранилища бетона с использованием абстрактной фабрики, но когда я пытаюсь реализовать синглтон, у меня возникает проблема, так как метод getinstance синглтона является статическим, код ниже показывает проблему.
Как переписать IStoreFactory и BookStoreFactory для вызова одноэлементного класса BookStore?
public class BookStore extends Store {
private volatile static BookStore uniqueInstance;
static BookStoreFactory bookStoreFactory;
private BookStore(BookStoreFactory bookStoreFactory) {
this.bookStoreFactory = bookStoreFactory;
}
public static synchronized BookStore getInstance() {
if (uniqueInstance == null) {
synchronized (BookStore.class) {
if (uniqueInstance == null) {
uniqueInstance = new BookStore(bookStoreFactory);
}
}
}
return uniqueInstance;
}
}
public interface IStoreFactory {
public Store createStore();
}
public class BookStoreFactory implements IStoreFactory{
private Store store;
If(store == null){
Store = bookStore.getInstance();
}
return store;
}
}
Как я могу вызвать bookstore.getInstance в BookFactory
Store = bookStore.getInstance ();