單例模式,屬於建立型別的一種常用的軟體設計模式。通過單例模式的方法建立的類在當前程序中只有乙個例項(根據需要,也有可能乙個執行緒中屬於單例,如:僅執行緒上下文內使用同乙個例項)
直白的說,就是為了節省記憶體,減少記憶體抖動。記憶體抖動就是說頻繁的建立和**操作,就容易出現記憶體抖動,而出現記憶體抖動丟擲的錯誤是記憶體溢位。
public
class
extends
}
懶漢式,懶漢一般都是什麼時候用,什麼時候做。在**中就是當你要用這個物件的時候,在建立。
比如我用的progressdialog就可以寫乙個單例模式。
public
class
progressdialog
public
static progressdialog getinstance()
}}return instance;
}private materialdialog materialdialog;
public
void
show
(context mcontext)
materialdialog =
newmaterialdialog.builder
(mcontext)
// .title(r.string.progress_dialog_title)
.content
(r.string.progress_please_wait)
.progress
(true,0
).cancelable
(false).
progressindeterminatestyle
(false).
show()
;}public
void
show
(context mcontext,string mess)
public
void
changecontent
(string content)
public
void
dismiss()
materialdialog.
dismiss()
;}}
設計模式 單例模式
單例模式 singleton pattern 是乙個比較簡單的模式,其定義如下 ensure a class has only one instance,and provide a golbal point of acess to it.確保某乙個類只有乙個例項,而且自行例項化並且向整個系統提供這個...
設計模式 單例模式
class testsingleton static public function instance return self testsingleton private function clone public function setsinvar sinvar public function ...
設計模式 單例模式
單例模式的目的是保證類在系統中只被例項化一次,由該唯一的例項來為系統提供服務.單例模式主要用於保證服務的統一,比如獲取統一的編號服務,模仿oracle的序列生成等.但單例的使用需要謹慎,特別是在需要作負載均衡的地方,因為這種程式級的單例模式實際上只能保證在乙個應用中為單例.如果被多個應用載入,還是會...