原创 設計模式C++實現十八:橋接模式

聚合(aggregation)表示一種弱的“擁有”關係,體現的是A對象可以包含B對象,但B對象不一定是A對象的一部分。例如大雁是羣居動物,所以每隻大雁都是屬於一個雁羣,一個雁羣可以有多隻大雁,所以大雁和雁羣是聚合關係。 合成(compos

原创 設計模式的六大原則

轉自:http://www.uml.org.cn/sjms/201211023.asp#4 設計模式六大原則(1):單一職責原則 定義:不要存在多於一個導致類變更的原因。通俗的說,即一個類只負責一項職責。  問題由來:類T負責兩個不

原创 設計模式C++實現七:模版方法模式

模版方法模式(TemplateMethod):定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。模版方法使得子類可以不改變一個算法的結構即可重新定義該算法的某些特定步驟。 模版方法是通過把不變的行爲搬移到父類,去除子類中重複的代碼。模

原创 設計模式C++實現六: 原型模式

原型模式(Prototype):用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。原型模式其實就是從一個對象再創建另一個可定製的對象,而且不需知道創建的具體細節。 #ifndef PROTOTYPE_H #define P

原创 設計模式C++實現十四:備忘錄模式

備忘錄模式(Memento):在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態,這樣以後就可以將該對象恢復到之前保存的狀態。 備忘錄模式比較適用於功能較複雜的,但需要維護和記錄屬性歷史的類,或者需要保存的屬性只是

原创 設計模式C++實現十二:狀態模式

狀態模式(state):當一個對象的內在狀態改變時允許改變其行爲,這個對象看起來像是改變了其類。 狀態模式主要解決的是當控制一個對象狀態轉換的條件表達式國語複雜時的情況。把狀態的判斷邏輯轉移到不同狀態的一系列類中,可以把複雜的判斷邏輯簡化

原创 設計模式C++實現四:代理模式

代理模式(Proxy):爲其他對象提供一種代理以控制對這個對象的訪問。 應用場景:1.遠程代理,也就是爲一個對象在不同的地址空間提供局部代表,這樣就可以隱藏一個對象存在於不同地址空間的事實。     2.虛擬代理,是根據需要創建開銷很大的

原创 設計模式C++實現九:建造者模式

建造者模式(Builder):主要用於創建一些複雜的對象,這些對象內部構建間的建造順序通常是穩定的,但對象內部的構建通常面臨着複雜的變化。其好處就是使得建造代碼與表示代碼分離,由於建造者隱藏了該產品是如何組裝的,所以需要改變一個產品的內部

原创 設計模式C++實現十五:組合模式

組合模式(Composite):將對象組合成樹的結構以表示部分-整體的層次結構。組合模式使得用戶對單個對象和組合對象的使用具有一致性。 樹可能有無數的分支,只有反覆使用Composite就可以實現樹狀結構了。在Component中聲明所有

原创 設計模式C++實現十六:迭代器模式

迭代器模式(Iterator):提供一種方法順序訪問一個聚合對象中的各個元素,而又不暴露該對象的內部表示。 使用場景:當我們需要訪問一個聚集對象時,而且不管這些對象是什麼都需要遍歷的時候,我們可以考慮使用迭代器模式。如果我們需要對聚集有多

原创 設計模式C++實現十一:抽象工廠模式

抽象工廠模式(Abstract Factory):提供一個創建一系列相關或者相互依賴對象的接口,而無需指定他們具體的類。 優點:便於交換產品系統,由於具體工廠類,在一個應用中只需要初始化的時候出現一次,這就使得改變一個應用的具體工廠變得非

原创 Cocos2d-x3.5 設計Fly_bird(飛行的小鳥)並打包成APK文件

這個小的遊戲代碼可以使我們理解常見的cocos的概念,從場景,精靈,圖層,到導演,回調函數,更新函數,再到設置物理世界,設置精靈剛體。不得不說cocos博大精深,不過有個大家一直在意的問題,就是cocos版本更新太快,有些東西不能使用或者

原创 cocos2D-x 3.5 引擎解析之--節點(Node)

#ifndef __CCNODE_H__ #define __CCNODE_H__   #include "base/ccMacros.h" #include "base/CCVector.h" #include "base/C

原创 cocos2d-x“無法打開源文件”

在學習cocos2d-x時,我們需要注意的是把我們寫的源代碼加入到classes文件夾中,而在VS中,我們添加文件會默認添加到win32的文件夾下面,這樣我們在執行別的平臺打包的時候就用不到我們編寫的源代碼了。剛開始就碰到了一些問題,新建

原创 C++的逆波蘭表達式的求解

逆波蘭表示法(Reverse Polish notation,RPN,或逆波蘭記法),是一種是由波蘭數學家揚·武卡謝維奇1920年引入的數學表達式方式,在逆波蘭記法中,所有操作符置於操作數的後面,因此也被稱爲後綴表示法。逆波蘭記法不需要