模式實現 可被繼承的 Singleton

2021-04-12 15:49:10 字數 1561 閱讀 2917

可被繼承的singleton

singleton

模式在日常工作中的使用頻率應當是很高的。一般的全域性資料,全域性函式等都可以放入乙個

singleton

類中。singleton

模式是如此的熟為人知,以至於許多的

c++大拿都有專門論述。如果你想非常全面地了解它,建議讀讀四人幫的設計模式,讀讀

loki

庫等。就我個人而言,大多數情況下我使用

singleton

都不需要對它有很苛刻的要求,如生存時間等。

乙個簡單化的

singleton

是很容易實現的,不過如果你每次都需要自己去實現它,難免有點不痛快,乙個簡單的除掉這個不痛快的方式就是寫乙個基類,提供一套

singleton

設施,需要的時候繼承自它就可以了。

不羅嗦了,俺03年寫的乙個東西,沒幾行**: /*

*/template

<

class

subclass

>

class

singleton

private

:singleton(

const

singleton &);

singleton 

&operator=( 

const

singleton 

&rhs ) ;

};template

<

class

subclass

>

subclass 

*singleton

<

subclass

>

::instance ()

return

_instance;

}template

<

class

subclass

>

subclass 

*singleton

<

subclass

>

::_instance =0

;template

<

class

subclass

>

bool

singleton

<

subclass

>

::_create_by_instance =0

;

這個singleton

有限制條件:繼承自它的類必須有無引數建構函式。對這一點有異議的話,可以重新修改一下,加點模板引數之類的。

使用相當簡單,假如你有個

global

類,需要做成乙個

singleton

,這樣:

class global : public singleton

完了,簡單不過還挺實用,希望你喜歡

~~~  

可被子元素繼承的屬性

color 顏色,a元素除外 direction 方向 font 字型 font family 字型系列 font size 字型大小 font style 用於設定斜體 font variant 用於設定小型大寫字母 font weight 用於設定粗體 letter spacing 字母間距 l...

C 不可被拷貝類的實現

在c 中,類的拷貝主要是通過拷貝建構函式和賦值函式,還有就是為拷貝專門實現的成員方法。拷貝建構函式和賦值函式在使用者沒有提供的情況下是由c 編譯器自動生成的,是public成員,因此預設的c 類都有拷貝功能。若讓乙個c 類不能被拷貝,可顯式地宣告類的拷貝建構函式和賦值函式為私有函式,從而達到該類不可...

模板設計模式 組合 繼承實現

package org.test.spring.template 基於繼承的模版設計模式!author asus n56 public abstract class mytemplatebyin private void closeconnection public abstract void ru...