Singleton 單件模式保證一個類只有一個執行個體,並提供一個該執行個體的全域訪問點。核心是如何控制使用者使用new對一個類的實力構造器的任意調用。 1、單線程Singleton模式實現代碼Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->public class Singleton{//private static Singleton
Browsing the SSCLI can be enlighting from time to time (if not all the time). Take a look at the following function implemented in console.cs:[HostProtection(UI=true)][CLSCompliant(false)] public static void WriteLine(String format, Object arg0,
前段時間剛參加了n多公司的C/C++軟體工程師的面試,有國企,外企,私企(moto,飛思卡爾,港灣,中國衛星XXX(這個牛))等等等等。感受感想頗多,近日終於空閑,在此表述一下。 本人基本條件:3年開發經驗,2year+ Windows development experence,1year+ Linux experence. 熟悉C,C++,MFC/SDK/API,MiniGUI...(都是一些基本的了)。前公司並不知名,但在其中做個team leader。 言歸正傳
c++中的explicit關鍵字用來修飾類的建構函式,表明該建構函式是顯式的,既然有"顯式"那麼必然就有"隱式",那麼什麼是顯示而什麼又是隱式的呢?如果c++類的建構函式有一個參數,那麼在編譯的時候就會有一個預設的轉換操作:將該建構函式對應資料類型的資料轉換為該類對象,如下面所示:class MyClass{public:MyClass( int num );}....MyClass obj = 10; //ok,convert int to
在軟體系統中,有時候面臨著“一個複雜物件”的建立工作,其通常由各個部分的子物件用一定的演算法構成:由於需求的變化,這個複雜物件的各個部分經常面臨著劇烈的變化,但是將它們組合在一起的演算法卻相對穩定。如何應對這種變化?如何提供一種“封裝機制”來隔離出“複雜物件的各個部分”的變化,從而保持系統中的“穩定構建演算法”不隨著需求改變而改變?將一個複雜物件的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。 結構: 協作: Code highlighting produced by
在軟體系統中,經常面臨著“某些結構複雜的對象”的建立工作;由於需求的變化,這些對象經常面臨著劇烈的變化,但是它們卻擁有比較穩定一致的介面。 如何應對這種變化?如何向“客戶程式(使用這些對象的程式)”隔離出“這些易變對象”,從而使得“依賴這些易變對象的客戶程式”不隨著需求改變而改變? 使用原型執行個體指定建立對象的種類,然後通過拷貝這些原型來建立新的對象。 結構: Code highlighting produced by Actipro CodeHighlighter
由於某些類型的固有邏輯,使得它們具有兩個化的維度,乃至多個緯度的變化。 如何應對這種“多維度變化多維度變化”?如何利用面對象技術來使得類型可以輕鬆地沿著兩個乃至多個方向變化,而不引入額外的複雜度? 意圖:將一個事物中多個維度變化分離,使他們都可以獨立的變化。 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->public
在某些情況下,客戶代碼過多地依賴於對象容器複雜的內部實現結構,對象容器內部實現結構(而非抽象介面)的變化將引起客戶代碼的頻繁變化,帶來了代碼的維護性、擴充性等弊端。 如何將“客戶代碼與複雜的對象容器結構”解耦?讓對象容器自己來實現自身的複雜結構,從而使得客戶代碼就像處理簡單對象一樣來處理複雜的對象容器? 意圖: 將對象組合成樹形結構以表示“部分-整體”的階層。Composite使得使用者對單個對象和組合對象的使用具有一致性。 Code highlighting produced by