auto commit
This commit is contained in:
@ -47,7 +47,7 @@
|
||||
|
||||
以下实现中,私有静态变量 uniqueInstance 被延迟化实例化,这样做的好处是,如果没有用到该类,那么就不会实例化 uniqueInstance,从而节约资源。
|
||||
|
||||
这个实现在多线程环境下是不安全的,如果多个线程能够同时进入 if(uniqueInstance == null) ,那么就会多次实例化 uniqueInstance。
|
||||
这个实现在多线程环境下是不安全的,如果多个线程能够同时进入 if (uniqueInstance == null) ,并且此时 uniqueInstance 为 null,那么多个线程会执行 uniqueInstance = new Singleton(); 语句,这将导致实例化多次 uniqueInstance。
|
||||
|
||||
```java
|
||||
public class Singleton {
|
||||
@ -350,8 +350,8 @@ public class Client {
|
||||
public static void main(String[] args) {
|
||||
AbstractFactory abstractFactory = new ConcreteFactory1();
|
||||
AbstractProductA productA = abstractFactory.createProductA();
|
||||
abstractFactory = new ConcreteFactory2();
|
||||
productA = abstractFactory.createProductA();
|
||||
AbstractProductB productB = abstractFactory.createProductB();
|
||||
// do something with productA and productB
|
||||
}
|
||||
}
|
||||
```
|
||||
|
Reference in New Issue
Block a user