五大單例模式

2021-09-25 22:58:38 字數 1494 閱讀 7336

/**

* @author daxia_hao

* @date 2019/8/7 0007 7:59

** 單例模式的動機,單例模式概述:設計乙個任務管理器

** 1.單執行緒經典單例模式

* 多執行緒下容易進入==null後,初始化工作較長,多執行緒會建立多個執行緒

* 為了解決問題,兩種方式

* --------

* 2.餓漢式

* static final tm = new taskmanager(); ---由於啟動執行緒即建立,可確保執行緒唯一

* ---缺點:不能延遲載入

* 3.懶漢式

* tm = null;

* 方法前加synchronized-----每次呼叫類都要判斷,消耗資源過度

* 加在方法內部

* synchronized(taskmanager.class)類名.class

* --------解決

* 4.懶漢式的雙重檢驗鎖 --volatile

* ---缺點:控制繁瑣,效能下降

* ---------最佳方案

* 5.initialization demand holder (iodh)

* 靜態內部類**

**/class taskmanager implements runnable

private static taskmanager tm = null;

public static taskmanager getinstence()

return tm;

}@override

public void run()

}class hungry

private static hungry hungry = new hungry();

public static hungry getinstance()

}class lazy

private static lazy lz = null;

private static lazy getinstance()

}return lz;}}

class lazydeouble

private static lazydeouble lz = null;

private static lazydeouble getinstance()

}return lz;}}

class holder implements runnable

private static class instance

public static holder getinstance()

@override

public void run()

}public class singletondemo

}

產品創新五大模式

從關注產品本身著手,利用五大創新模式。如何找到令人驚嘆又切實可行的產品創意?構建在5種模式之上的系統化創新方法,從關注產品本身著手,助你把握創新的尺度。很多公司在產品創新時採用一種被稱作 系統化創造性思維 systematic inventive thinking 的方法,取得了令人驚嘆的效果。這種...

設計模式(五) 單例模式

單例模式,主要由以下幾個模組組成 私有的靜態物件例項,私有的構造方法 避免外部呼叫new物件,保證只有乙個物件的例項 乙個共有的靜態獲取物件的方法 供外部呼叫 如下 懶漢式單例模式 在需要的時候,也即呼叫共有的靜態獲取物件的方法時才建立物件 package singlepattern public ...

五種單例模式

import settings class mysql instance none 原始狀態設為none def init self,ip,port self.ip ip self.port port classmethod deffrom conf cls if cls.instance is n...