原创 設計模式之 factory 模式

常見設計模式的解析和實現(C++)之一-Factory模式 作用:定義一個用於創建對象的接口,讓子類決定實例化哪一個類。Factory Method 使一個類的實例化延遲到其子類。UML結構圖:抽象基類:1)Product:創建出來的對

原创 設計模式之 chainofresponsibility

常見設計模式的解析和實現(C++)之十二-ChainOfResponsibility模式 作用:使多個對象都有機會處理請求,從而避免請求的發送者和接收者之間的耦合關係.將這些對象連成一條鏈,並沿着這條鏈傳遞該請求,直到有一個對象處理它爲

原创 筆試面試之安全的賦值操作符

類CMyString的聲明如下: class CMyString{public:      CMyString(char* pData = NULL);      CMyString(const CMyString& str);    

原创 設計模式之 abstractfactory

常見設計模式的解析和實現(C++)之二-Abstract Factory模式 作用:提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。UML結構圖:抽象基類:1)ProductA,ProductB:分別代表不同類型的產

原创 設計模式之 builder

常見設計模式的解析和實現(C++)之三-Builder模式 作用:將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。UML結構圖:適用於以下情況: 1)當創建複雜對象的算法應該獨立於該對象的組成部分以及它們的裝

原创 筆試面試之奇偶partition

輸入一個整數數組,調整數組中數字的順序,使得所有奇數位於數組的前半部分,所有偶數位於數組的後半部分。要求時間複雜度爲O(n)。   方法一:遍歷數組統計出奇數偶數個數,再申請一個數組,放置即可,時復o(n),空復o(n) 方法二:從開頭

原创 筆試面試之字符串的全排列

輸入一個字符串,打印出該字符串中字符的所有排列。例如輸入字符串abc,則輸出由字符a、b、c所能排列出來的所有字符串abc、acb、bac、bca、cab和cba。     我們以三個字符abc爲例來分析一下求字符串排列的過程。首先我們固

原创 設計模式之 bridge

常見設計模式的解析和實現(C++)之七-Bridge模式 作用:將抽象部分與它的實現部分分離,使它們都可以獨立地變化。UML結構圖:抽象基類:1)Abstraction:某個抽象類,它的實現方式由Implementor完成.2)Im

原创 UML符號

虛線箭頭 表示“依賴關係”,依賴有“使用”的語義,比如患者與醫生的關係。實線箭頭 表示“帶了導航行的關聯關係”,從一個類到另一類。使用實線箭頭時通常會帶上“多重性”的表達方式。如:一對多,一對一,多對多等等 圖一: 此實線箭頭表示, 

原创 筆試面試之倒序輸出鏈表

  輸入一個鏈表的頭結點,從尾到頭反過來輸出每個結點的值。鏈表結點定義如下: struct ListNode {       int       m_nKey;       ListNode* m_pNext; };   方法一:先逆序

原创 設計模式之 proxy

常見設計模式的解析和實現(C++)之十-Proxy模式 作用:爲其他對象提供一種代理以控制對這個對象的訪問。UML結構圖:抽象基類:1)Subject:定義了Proxy和RealSubject的公有接口,這樣就可以在任何需要使用到Rea

原创 設計模式之 singleton

常見設計模式的解析和實現(C++)之五-Singleton模式 作用:保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。UML結構圖:解析:Singleton模式其實是對全局靜態變量的一個取代策略,上面提到的Singleton模

原创 設計模式之 adapt

常見設計模式的解析和實現(C++)之六-Adapt模式 作用:將一個類的接口轉換成客戶希望的另外一個接口。Adapt 模式使得原本由於接口不兼容而不能一起工作的那些類可以一起工作。UML示意圖1)採用繼承原有接口類的方式2)採用組

原创 設計模式之 composite

常見設計模式的解析和實現(C++)之八-Composite模式 作用:將對象組合成樹形結構以表示“部分-整體”的層次結構。Composite使得用戶對單個對象和組合對象的使用具有一致性。UML結構圖:抽象基類:1)Component:爲

原创 設計模式之 decorator

常見設計模式的解析和實現(C++)之八-Composite模式 作用:將對象組合成樹形結構以表示“部分-整體”的層次結構。Composite使得用戶對單個對象和組合對象的使用具有一致性。UML結構圖:抽象基類:1)Component:爲