1. 程式人生 > >java中單態模式或單例模式(Singleton)有什麽意義?

java中單態模式或單例模式(Singleton)有什麽意義?

ESS 兩張 oid 什麽 else 不能 spa lse new

8.單態模式或單例模式(Singleton) (視頻下載) (全部書籍)

單態模式有什麽用呢?想一下Adobe Photoshop ,處理兩張圖,會啟動兩個photoshop嗎?多耗費內存呀! ( Consider Adobe or oracle, process two images with two adobes?),所以單態模式在公司編程是非常重要的。有很多場合都要求,對象只能存在一個,多了的話就太耗費資源。(馬克-to-win)

class Photoshop {
/* 通過調試發現寫成 static Photoshop photoshop或static Photoshop
photoshop=null;是一樣的,開始時都為null,馬克-to-win,另外在調試時 可以寫上觀察Photoshop.photoshop的值,它是獨立於任何對象之外的,從程序開始運行的main方法時, 這個值就有了, 只不過為null罷了,
*/
static Photoshop photoshop;//這個值獨立於任何對象存在,實例化任何對象之前,這個成員就有可能有值。

static Photoshop getInstanceQixy() {
if (photoshop == null) {
photoshop = new Photoshop();
System.out.println("成功創建");
} else {
System.out.println("已經創建了該類的實例,不能再創建!");
}

return photoshop;
}

void drawImage() {
System.out.println("draw image using photoshop");
}
}

public class Test {
public static void main(String[] args) {
Photoshop photoshopI1 = Photoshop.getInstanceQixy();
Photoshop photoshopI2 = Photoshop.getInstanceQixy();
System.out.println(photoshopI1 == photoshopI2);
System.out.println(photoshopI1 == Photoshop.photoshop); photoshopI1.drawImage();
Photoshop photoshopI3 = new Photoshop();
。。。。。。。。。

更多詳情請見:http://www.mark-to-win.com/index.html?content=JavaBeginner/javaUrl.html&chapter=JavaBeginner/JavaBeginner2_web.html#SingleTon

java中單態模式或單例模式(Singleton)有什麽意義?