Singleton design pattern of starving and lazy formula formula

Singleton:

    Take certain methods to ensure that the entire software system, for a class there is only an object instance

               Ways: lazy style and Chinese style, and so hungry   

Lazy style and starving type of difference:

          Cons Pros

    Starving type: thread-safe load for too long in memory

    Lazy type: thread safe extended to create an object        

class Order {
private String name;

//私有化构造函数
private Order() {

}

private static Order instance = null;

public static Order getInstance() {
if (instance == null) {
instance = new Order();
}
return instance;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

public class Single002 {
public static void main(String[] args) {
Order o1=Order.getInstance();
Order o2=Order.getInstance();
System.out.println(o1==o2);
System.out.println("################");
o1.setName("lisi");
System.out.println(o2.getName());
}
}
饿汉式
Bank {class 
public String getName () {
return name;
}

public void the setName (String name) {
this.name = name;
}

Private String name;

// constructor privatization
Private Bank () {

}

// create static internal objects
= new new instance static Bank Private Bank ();

// public static method returns a class object
public static Bank the getInstance () {
return instance;
}
}

public class Single001 {
public static void main (String [] args) {
Bank B = Bank.getInstance ();
Bank Bank.getInstance B1 = ();
System.out.println (B == B1);
System.out.println("*****************");
b.setName("zhangsan");
System.out.println(b1.getName());
}
}

------------ ------------ restore content begins

Singleton:

    Take certain methods to ensure that the entire software system, for a class there is only an object instance

               Ways: lazy style and Chinese style, and so hungry   

Lazy style     

class Order {
private String name;

//私有化构造函数
private Order() {

}

private static Order instance = null;

public static Order getInstance() {
if (instance == null) {
instance = new Order();
}
return instance;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

public class Single002 {
public static void main(String[] args) {
Order o1=Order.getInstance();
Order o2=Order.getInstance();
System.out.println(o1==o2);
System.out.println("################");
o1.setName("lisi");
System.out.println(o2.getName());
}
}
饿汉式
Bank {class 
public String getName () {
return name;
}

public void the setName (String name) {
this.name = name;
}

Private String name;

// constructor privatization
Private Bank () {

}

// create static internal objects
= new new instance static Bank Private Bank ();

// public static method returns a class object
public static Bank the getInstance () {
return instance;
}
}

public class Single001 {
public static void main (String [] args) {
Bank B = Bank.getInstance ();
Bank Bank.getInstance B1 = ();
System.out.println (B == B1);
System.out.println("*****************");
b.setName("zhangsan");
System.out.println(b1.getName());
}
}

End ------------ ------------ restore content

Guess you like

Origin www.cnblogs.com/kukai/p/12524772.html