Java、单例元素修改、软件模式

标签 java arrays eclipse singleton

简短的问题。希望它能很快得到答复。假设我有一个这样的单例:

package main.library;

public enum LibrarySingleton {
    INSTANCE(new String[][]{});

    final String[][] bookStore;

    private LibrarySingleton(String[][] bookStore){
        this.bookStore = bookStore;
    }
}

和一个包含 3 个变量的 Book 类:

package main.library;

public class Book{
    String author;
    String title;
    int pages;

    @Override public String toString(){
        return ("|" + author + "|" + title + "|" + pages + "|");
    }

    public Book(){
        System.out.println("Error: No book information specified");
    }

    public Book(String author, String title, int pages){
        this.author = author;
        this.title = title;
        this.pages = pages;
    }

    public String getAuthor(){
        return author;
    }

    public String getTitle(){
        return title;
    }

    public int getPages(){
        return pages;
    }
}

我正在研究如何将该单例用作存放书籍的数组。我如何访问书籍,将它们放入数组(单例)或从数组中删除它们(单例)?如果单例应该以不同的方式编写,请纠正我,并解释为什么它是错误的,因为我对 Java 还不是那么“高级”。

真的希望你们能就此回答我。请只是问题。

最佳答案

如果你想要单例,你可以使用下面的方法:

public class Library {
   private static final Library instance = new Library();
   private List<Book> books = new ArrayList<Book>();

   public static Library getInstance() {
       return instance ;
   }

   public void add(Book book) { 
       books.add(book);
   }
}

当然,如果你的程序有多个线程,就加上同步。如果您的程序运行在发生复杂类加载的 J2EE 环境中,则您需要不同的模式。

关于Java、单例元素修改、软件模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18219036/

相关文章:

java.security.NoSuchAlgorithmException : RSA Signature not available

java - Selenium - 如何在 iframe 上定位元素

java - 如何从双卡手机读取 IMEI

javascript - 当我从模型中的数组字段添加或删除对象时,Ember 不更新模板

java - Maven 没有使用服务器的 servlet-api 构建

java - 在 JavaFX 中调整窗口大小时如何调整图像大小

java - 不同的 (HotSpot) JVM 线程类型有什么作用?

python - 如何查找数组的任何元素是否在 pyspark 的范围内

java - 确保多个数组长度相同的最佳方法

php - 在 eclipse Oxygen 中更改 PHP 语言库