可被繼承的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...