單例設計模式是面試中經常被問到的,常見的就是讓寫出一個單例模式的例子出來,通過經驗的積累我推薦下面2個代碼片段,這兩種方法差別不大但是記憶起來特別方便。只需記住下面兩點就能寫出單例設計模式的例子了
(1)單例模式的類構造方法是私有的
(2)單例模式返回的實例以static關鍵字修飾
下面來看兩個單例模式的例子
1.懶漢模式
package org.lxh; public class UseSingleton { private static UseSingleton sin=null; private UseSingleton(){} public static synchronized UseSingleton getInstance(){ if(sin==null){ sin=new UseSingleton(); } return sin; } }
2.飢漢模式
這種模式最簡單了代碼比上面那種方法要少
package org.lxh; public class UseSingleton { private static UseSingleton sin = new UseSingleton(); private UseSingleton() { } public static UseSingleton getInstance() { return sin; } }