Abstart Factory с рисунком Singlton Design - PullRequest
0 голосов
/ 13 апреля 2019

На диаграмме 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 ();

...