1. 程式人生 > >【設計模式】描述先有雞還是先有蛋

【設計模式】描述先有雞還是先有蛋

這裡有點疑問,書上說的是蛋繼承雞。從功能上說可能雞繼承蛋更合適,雞比蛋多了好多功能。另外這裡還缺Cock
#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、中級人員模式: "或許這裏我需要一個單件

編程思想設計模式結構模式StructuralMVC

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 #!/