設計模式1——單例
解決:保證了乙個類在記憶體中僅僅能有乙個物件。
怎麼做才幹保證這個物件是唯一的呢?
思路:
1、假設其它程式可以任意用new建立該類物件,那麼就無法控制個數。因此,不讓其它程式用new建立該類的物件。
2、既然不讓其它程式new該類物件,那麼該類在自己內部就要建立乙個物件,否則該類就永遠無法建立物件了。
3、該類將建立的物件對外(整個系統)提供。讓其它程式獲取並使用。
步驟:
1、 將該類中的建構函式私有化。
2、在本類中建立乙個本類物件。
3、定義乙個方法。返回值型別是本類型別。讓其它程式通過該方法就能夠獲取到該類物件。
實現一:(餓漢式)
package cn.hncu.patterns.exercise.single;
/* * 餓漢式
*/public class single
public static single getinstance()
}
實現二:(懶漢式)
/*
* 懶漢式
*/class single2
/* * synchronized執行緒安全
*/public synchronized static single2 getinstance()
return s;
}}
設計模式(1) 單例設計模式
單例設計模式 定義 確保乙個類只有乙個例項,並且自行例項化,並向整個系統提供這個例項。餓漢式 class single 通過該方法獲得例項物件 public single getinstance 類中其他方法盡量使用static public static void say 通過定義乙個私有訪問許可...
設計模式1單例設計模式
public class sigleton return instance 第二種執行緒加鎖的,太耗時了,執行緒安全是安全,但是太耗時間 這種簡單粗暴的方式不合理,不管他是不是 這種引起的第三種 不推薦使用 public static synchronized sigleton getinstanc...
單例設計模式1
所謂單例設計模式,即時採取一定的方法保證在整個軟體系統當中,對於某個類只能存在乙個物件例項,並且該類只提供乙個其物件例項的方法 靜態方法 優點 這種寫法比較簡單,就是在類裝載的時候就完成例項化.避免了執行緒同步問題 缺點 在類裝載的時候就完成了例項化,沒有達到lazy loading的效果.如果從始...