【設計模式】描述先有雞還是先有蛋
#include <iostream> using namespace std; enum TYPE{ HEN, EGG }; class Egg; class Hen { public: enum TYPE type; int wings; Egg* egg; Hen(){ type = HEN; wings = 2; } }; class Egg : public Hen { public: enum TYPE type; int shell; Egg(){ type = EGG; shell = 1; } }; int main() { Hen hen = Hen(); hen.egg = &Egg(); printf("Type of Hen:%d Type of Egg:%d\n", hen.type, hen.egg->type); printf("Wings of Hen:%d Wings of Egg:%d Shell of Egg:%d", hen.wings, hen.egg->wings, hen.egg->shell); system("Pause"); }
相關推薦
【設計模式】描述先有雞還是先有蛋
這裡有點疑問,書上說的是蛋繼承雞。從功能上說可能雞繼承蛋更合適,雞比蛋多了好多功能。另外這裡還缺Cock#include <iostream> using namespace std; enum TYPE
【設計模式】簡單工廠模式和工廠方法模式
產生 for plm nbsp osc rbm play stp mage > 簡單工廠模式 顧名思義,此模式的設計結構是簡單的,核心是生產對象。 一般來說,運用工廠模式生產的對象應該是構建對象的過程比較復雜的,獲取構建對象的過程在日後可能發生變更的。 簡單工廠
【設計模式】設計模式基本概念
ada 機制 通過 font size 單個 無法 模式空間 使用 一、設計模式空間 類模式:處理類和子類之間的關系,通過繼承建立,靜態。 對象模式:處理對象之間的關系,動態性。 1、創建型:對象的創建。 類:Factory Method 將對象的部分創建工作延遲到子類
【設計模式】學習進度
包含 creat rod eth 什麽 method 觀察 不同 是什麽 1、策略模式:定義了算法族,分別封裝起來,讓它們之間可以互相替換,此模式讓算法的變化獨立於使用算法的客戶。 eg 鴨子 2、觀察者模式:定義了對象之間的一對多依賴,這樣一來,當一個對象改變狀態時,它的
【設計模式】單例模式
amp 就會 保持 占用 back obj 線程不安全 only 大量 一、單例模式的定義 單例模式( Singleton Pattern) 是一個比較簡單的模式, 其定義如下:Ensure a class has only one instance, and provid
【設計模式】建造者模式
object lan pat alt pri 創建對象 private 關心 turn 1、定義 1.1 標準定義 建造者模式( Builder Pattern) 也叫做生成器模式, 其定義如下: Separate the construction of a complex
【設計模式】簡單工廠模式
jsb 工廠模式 tle virt -m 虛函數 ios efault def 以面向對象的思想和簡單工廠模式。寫一個C++計算器程序,代碼例如以下: #include <iostream> using namespace std;
【設計模式】中介者模式
col com fin 每一個 mediator std 一對一 類的方法 -1 1、 定義 1.1 標準定義 中介者模式的定義為:Define an object that encapsulates how a set of objectsinteract.Med
【設計模式】責任鏈模式
receive req evel 自己 缺點 結果 改革 == 引用 1、定義 1.1 標準定義 Avoid coupling the sender of a request to its receiver by giving more than one object a
【設計模式】策略模式
concrete 方法 行為 無法 策略模式 避免 mint his 多態 1、定義 1.1標準定義 策略模式(StrategyPattern)是一種比較簡單的模式,也叫做政策模式(PolicyPattern)。其定義如下:Defineafamilyofalgorithms
【設計模式】 觀察者模式
new mes 一對多 建議 ios between 生存 兩個 開始 1、定義 1.1 標準定義 觀察者模式(Observer Pattern)也叫做發布訂閱模式(Publish/subscribe),它是一個在項目中經常使用的模式,其定義如下:Define a one-
【設計模式】代理模式:靜態代理,動態代理,spring aop
spring 實現接口 找到 master 代碼 -s result java 統一 代理模式分為靜態代理和動態代理。我們拿鏈家來舉例子,我們本人是真實的對象,有真實的業務需求:需要去找房子;鏈家是中介,是代理類,他來幫我執行找房子的這個操作。 靜態代理: 1.實現一個
【設計模式】裝飾者模式-明月裝飾了你的窗子
return rgs light 刪除 clas pan net public 不改變 裝飾者模式 使用裝飾者模式,可以動態的給一個對象添加一些額外的職責。這適用於,我們只希望給某個對象而不是整個類添加一些功能的場景。通過使用含有某個特定功能的類來“包裹”原始的類,提
【設計模式】2.工廠設計模式(生產者消費者問題)
catch 設計 star 機制 print boolean 結果 try producer 生產者消費者模型 與 多線程 生產者、消費者在同一時間內共用同一存儲空間, 生產者向共享空間生產數據, 而消費者取走共享的數據。、 經典問題描述: 生產者不斷交替地生產兩組數據“姓
【設計模式】 模式PK:裝飾模式VS適配器模式
角度 朋友 hit 擴展 override 轉換 展現 調用 代理 1、概述 裝飾模式和適配器模式在通用類圖上沒有太多的相似點,差別比較大,但是它們的功能有相似的地方:都是包裝作用,都是通過委托方式實現其功能。不同點是:裝飾模式包裝的是自己的兄弟類,隸屬於同一個家族(相同接
【設計模式】 模式PK:觀察者模式VS責任鏈模式
ipa 隨機 保留 聲明 pri 測試 void c_str window 1、概述 為什麽要把觀察者模式和責任鏈模式放在一起對比呢?看起來這兩個模式沒有太多的相似性,真沒有嗎?回答是有。我們在觀察者模式中也提到了觸發鏈(也叫做觀察者鏈)的問題,一個具體的角色既可以是觀察者
【設計模式】 模式PK:策略模式VS橋梁模式
情況 很多 一個 sub 編寫 場景 多態 文本 gets 1、概述 我們先來看兩種模式的通用類圖。 兩者之間確實很相似。如果把策略模式的環境角色變更為一個抽象類加一個實現類,或者橋梁模式的抽象角色未實現,只有修正抽象化角色,想想看,這兩個類圖有什麽地方不一樣?完全一樣!
【設計模式】module模式&&Revealing module (揭示)模式
但是 出版 參數傳遞 9.png 自然 指向 們的 private 初級 寫在前面 《head first設計模式》裏有一篇文章,是說使用模式的心智, 1、初學者"心智" :"我要為HELLO WORLD找個模式" 2、中級人員模式: "或許這裏我需要一個單件
【編程思想】【設計模式】【結構模式Structural】MVC
style ring gui \n http PE struct class console Python版 https://github.com/faif/python-patterns/blob/master/structural/mvc.py #!/usr/b
【編程思想】【設計模式】【結構模式Structural】門面模式/外觀模式Facade
pla each serve com pro rep compute source import Python版 https://github.com/faif/python-patterns/blob/master/structural/facade.py #!/