class Product {
}
interface Factory {
Product create();
}
class SingletonFactory implements Factory {
private Product product;
public synchronized Product create() {
if (this.product == null) {
product = new Product();
}
return product;
}
}
public class FactoryDemo {
public static void main(String[] args) {
Factory factory = new SingletonFactory();
Product p1 = factory.create();
for (int i = 0; i < 100; i++) {
if (factory.create() != p1) {
System.out.println("Factory returned another instance of Product!");
}
}
}
}
|