如何将抽象工厂与单件模式相结合?

时间:2013-11-20 20:07:36

标签: java

我在java编码,对这些模式很新。任何人都可以给我一个工厂摘要的例子,也使用单身?

2 个答案:

答案 0 :(得分:3)

以下是实现单例模式的类的示例。此实现也线程安全。它使用双重检查锁定,以便仅在需要时进行同步。

public class Singleton {
    private volatile static Singleton instance; // Note volatile keyword.

    private Singleton() {}

    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class) {
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}

您可以添加任何(工厂)方法作为类Singleton的成员。获得唯一实例后,这些方法将可用。

public class Singleton {
    /* ... */
    /* Singleton implementation */
    /* ... */

    public MyObject createMyObject() { // Factory method.
        return new MyObject();
    }

    // ...
}

答案 1 :(得分:0)

工厂模式是用于创建对象的创建模式。 Singleton确保每个JVM只有一个类的实例可用。组合这两种模式将涉及使用AbstractFactory创建单例实例,这意味着Factory将返回相同的实例。其他答案提供了代码