1. 程式人生 > 其它 >20192319李歆韻實驗二《Python程式設計》實驗報告

20192319李歆韻實驗二《Python程式設計》實驗報告

單例模式

1.餓漢式

package practise;/**
* @Program: Relearn
* @ClassName: Singleton01
* @Author: shawn.Choy
* @Copyright yufou自我練習所有
* @Date: 2022-04-07 15:59
* @Description: 單例模式的餓漢式
* @Version: V1.0
*/

/**
* pracitse
* <h5>描述:</h5>
*/
public class Singleton01 {
   public static void main(String[] args) {
       Bank bank1 = Bank.getInstance();
       Bank bank2 = Bank.getInstance();
       System.out.println(bank1==bank2);
  }
}
//餓漢式
class Bank{
   //1.私有化類的構造器
   private Bank(){}
   //2.內部建立類的物件,此物件也必須是靜態的
   private  static Bank instance=new Bank();
   //3.提供公共的靜態的方法,返回類的物件
   public static Bank getInstance() {
       return instance;
  }
}

2.懶漢式

package practise;/**
* @Program: Relearn
* @ClassName: Singleton02
* @Author: shawn.Choy
* @Copyright yufou自我練習所有
* @Date: 2022-04-07 16:08
* @Description: 單例模式的懶漢式
* @Version: V1.0
*/

/**
* practise
* <h5>描述:</h5>
*/
public class Singleton02 {
   public static void main(String[] args) {
       Order order1= Order.getInstance();
       Order order2= Order.getInstance();
       System.out.println(order1==order2);
  }
}
class Order {
   //1.私有化類的構造器
   private Order() {
  }

   //2.申明當前類的物件,沒有初始化
   private static Order instance = null;

   //3.申明public、static的返回當前類物件的方法
   public static Order getInstance(){
       if (instance==null){
           instance =new Order();
      }
       return instance;
  }

}

3.兩種模式的區分

餓漢式:

好處:餓漢式是執行緒安全的。

壞處:物件載入時間過長。

 

 

懶漢式:

好處:延遲物件的建立。

目前的寫法壞處:執行緒不安全