原创 4.6 FlyWeight 享元模式

意圖: 運用共享技術郵箱地支持大量細粒度的對象。   享元模式可以避免大量非常相似類的開銷。在程序設計中,有時需要生成大量細粒度的類實例來表示數據。如果能發現這些實例除了幾個參數外基本上都是相同的,有時就能夠受大幅度地減少需要實例化的類的

原创 什麼函數不能聲明爲虛函數

轉自:http://blog.csdn.net/reille/article/details/6214165 一、首先回顧下什麼是虛函數及其作用,以便更好理解什麼函數不能聲明或定義爲虛函數: 1.定義: 虛函數必須是基類的非靜態成員函數,

原创 約瑟夫環

馬上就要華爲機試了, 華爲的機試雖然沒什麼算法但拿他的題目練練手還是有必要的~我如果不是被刷掉了就是放在了第二批,祝第一批的實驗室兄弟姐妹們順利~ /********************************************

原创 4.1Adapter模式

轉自:http://blog.csdn.net/lcl_data/article/details/8780140 解決的問題: 適配器模式把一個類的接口變換成客戶端所期待的另一種接口,從而使原本接口不匹配而無法在一起工作的兩個類能夠在一起

原创 5.1 Chain of Responsibility職責鏈模式

意圖: 使多個對象都有機會處理請求,從而避免請求的發送者和接受者之間的耦合關係。將這些對象連成一條鏈,並沿着這條鏈傳遞該請求,直到有一個對象處理它爲止。   舉例: 辛辛苦苦了工作了一年,終於可以加薪了,向主管提交了加薪申請,主管一看不得

原创 4.4 Decorator模式

意圖: 動態的給一個對象添加一些額外的職責。就增加功能來說,Decorator模式相比生成子類更爲靈活。   使用繼承機制是添加功能的一種有效途徑,從其他類繼承過來的特性可以被多個子類的實例所使用。但這種方法不夠靈活。用戶不能選擇對組件加

原创 一道華爲上機題

/******************************************************************************************** 9月7日,一道華爲上機題: 題目描述: 選秀節目打

原创 3.2Builder

意圖: 將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。   建造者模式的本質和建造樓房是一致的:即流程不變,但每個流程實現的具體細節則是經常變化的。建造者模式的好處就是保證了流程不會變化,流程既不會增加,也不會

原创 3.5 Singleton

單例模式也稱爲單件模式、單子模式,可能是使用最廣泛的設計模式。其意圖是保證一個類僅有一個實例,並提供一個訪問它的全局訪問點,該實例被所有程序模塊共享。有很多地方需要這樣的功能模塊,如系統的日誌輸出,GUI

原创 4.5Fasade 外觀模式

意圖: 外觀模式(Facade),爲子系統中的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。 在軟件開發系統中,客戶程序經常會與複雜系統的內部子系統之間產生耦合,而導致客戶程序隨着子系統的變化而

原创 4.7 Proxy代理模式

意圖: 爲其他對象提供一種代理以控制對這個對象的訪問。   種類和用途 Proxy模式根據種類不同,效果也不盡相同: 1、遠程(Remote)代理:爲一個位於不同的地址空間的對象提供一個局域代表對象。這個不同的地址空間可以是在本機器中,也

原创 3.3FactoryMethod——工廠方法

意圖: 定義一個用於創建對象的接口,讓子類決定實例化哪一個類。FactoryMethod使一個類的實例化延遲到其子類。   其實在抽象工廠模式中,經過改進後的模式就是工廠方法模式,所以不多說了,上UML圖。 通過工廠方法模式的類圖可以

原创 3.4Prototype

意圖: 用原型實例指定創建對象的種類,並通過拷貝這些原型創建新的對象。這個其實和C++的拷貝構造函數的作用是一致的,實際上就是動態抽取當前對象運行時的狀態。   UML圖: 客戶(Client)角色:讓一個原型克隆自身從而創建一個新的

原创 4.3Composite

意圖: 將對象組合成樹形結構以表示“部分-整體”的層次結構。Composite使得用戶對單個對象和組合對象的使用具有一致性。   組合模式有時候又叫做部分-整體模式,它使我們樹型結構的問題中,模糊了簡單元素和複雜元素的概念,客戶程序可以像

原创 C++ Primer消息處理示例

例子: 對於郵件處理應用程序,Message類和Folder類分別表示電子郵件消息和消息出現的目錄,一個給定的消息可以出現在多個目錄中。 Message和Folder類設計如圖: 對於每個Message,我們並不是在每個Folder中都