物件導向 單例模式

2021-07-31 05:10:39 字數 1224 閱讀 9046

設計模式:解決某一類問題行之有效的解決辦法(思想)。

單例(singleton)設計模式

學習設計模式必須先弄清楚它是解決什麼問題的。

單例是解決什麼問題的呢?

可以保證乙個類的物件唯一性。

場景:比如多個程式都要使用乙個配置檔案中的資料,而且要實現資料共享和交換。必須要將多個資料封裝到乙個物件中。而且多個程式操作的是同乙個物件。那也就是說必須保證這個配置檔案物件的唯一性。

怎麼保證物件的唯一性?

1,乙個類只要提供了建構函式,就可以產生對個物件。完全無法保證唯一。既然數量不可控,就不讓其他程式建立物件。

2,不讓其他程式建立,物件何在?

自己在本類中建立乙個物件,這樣好處是什麼?可控。

3,建立完成後,是不是要給其他程式提供訪問的方式。

怎麼實現這個步驟呢?

1,怎麼就不能不讓其他程式建立物件呢?

直接私有化建構函式,不讓其他程式建立物件的初始化。

2,直接在本類中new乙個本類物件。

3,定義乙個功能,其他程式可以通過這個功能獲得本類的物件。

**體現:

//餓漢式

class single

//3,定義乙個方法返回這個物件。

public

static single getinstance()

}//懶漢式

//單例的延遲載入方式

class single2

public

static single2 getinstance()

}class singledemo

}

單例的簡單應用

//描述超人

class superman

public

static superman getinstance()

public

void

setname(string name)

public string getname()

public

void

fly()

}public

class test

}

物件導向 單例設計模式

單例設計模式 就是保證該類在程式中只能存在乙個物件,所以不能讓別人例項化該類,所以要私有化 private 該類的建構函式,但是你要為別人提供乙個該類的唯一物件,所以你要在該類中定義乙個靜態的方法返回本類物件。設計模式 解決某一問題最行之有效的方法 單例設計模式 解決乙個類在記憶體只存在乙個物件 想...

物件導向 單例設計模式

單例設計模式 就是保證該類在程式中只能存在乙個物件,所以不能讓別人例項化該類,所以要私有化 private 該類的建構函式,但是你要為別人提供乙個該類的唯一物件,所以你要在該類中定義乙個靜態的方法返回本類物件。設計模式 解決某一問題最行之有效的方法 單例設計模式 解決乙個類在記憶體只存在乙個物件 想...

PHP物件導向 單例模式

單例模式 singleton pattern 單例模式 singleton pattern 是最簡單的設計模式之一。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。這種模式涉及到乙個單一的類,該類負責建立自己的物件,同時確保只有單個物件被建立。這個類提供了一種訪問其唯一的物件的方式...