青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

emptysoul

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  25 Posts :: 0 Stories :: 23 Comments :: 0 Trackbacks

常用鏈接

留言簿(18)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

裝飾模式(Decorator)目的是給對象添加職責,其結構圖如下:


假設現在有一個圖書館,存有大量的書或影碟,相對于書或影碟,其本身沒有出借服務,現在就可以借助裝飾模式為其添加出借功能,結構圖如下:


實現代碼:
//Items.h
class Items  
{
public:
    
virtual ~Items();

    
virtual void Display() = 0;
protected:
    Items();
};

//Items.cpp
#include "stdafx.h"
#include 
"Items.h"

Items::Items()
{

}

Items::
~Items()
{

}

//Book.h
#include "Items.h"
#include 
<string>

class Book : public Items
{
public:
    Book();
    Book(std::
stringint);
    
virtual ~Book();

    
void Display();
private:
    std::
string m_strName;
    
int m_nNum;
};

//Book.cpp
#include "stdafx.h"
#include 
"Book.h"
#include 
<iostream>

using namespace std;

Book::Book()
{
    m_strName 
= "";
    m_nNum 
= 0;
}

Book::Book(
string strName, int nNum)
{
    m_strName 
= strName;
    m_nNum 
= nNum;
}

Book::
~Book()
{

}

void Book::Display()
{
    cout 
<< "書名:" << m_strName << " 數量:" << m_nNum << endl;
}

//Video.cpp
#include "Items.h"
#include 
<string>

class Video : public Items
{
public:
    Video();
    Video(std::
stringintint);
    
virtual ~Video();

    
void Display();
private:
    std::
string m_strName;
    
int m_nNum;
    
int m_nTime;
};

//Video.cpp
#include "stdafx.h"
#include 
"Video.h"
#include 
<iostream>

using namespace std;

Video::Video()
{
    m_strName 
= "";
    m_nNum 
= 0;
    m_nTime 
= 0;
}

Video::Video(
string strName, int nNum, int nTime)
{
    m_strName 
= strName;
    m_nNum 
= nNum;
    m_nTime 
= nTime;
}

Video::
~Video()
{

}

void Video::Display()
{
    cout 
<< "電影名:" << m_strName << " 數量:" << m_nNum<< " 播放時間:" << m_nTime << "分鐘" << endl;
}

//Decorator.h
#include "Items.h"

class Decorator : public Items
{
public:
    Decorator();
    Decorator(Items
*);
    
virtual ~Decorator();

    
virtual void Display();
protected:
    Items
* m_pItem;
};

//Decorator.cpp
#include "stdafx.h"
#include 
"Decorator.h"

Decorator::Decorator()
{
    m_pItem 
= NULL;
}

Decorator::Decorator(Items
* pItem)
{
    m_pItem 
= pItem;
}

Decorator::
~Decorator()
{
    
if(m_pItem != NULL)
    {
        delete m_pItem;
        m_pItem 
= NULL;
    }
}

void Decorator::Display()
{
    m_pItem
->Display();
}

//Borrowable.h
#include "Decorator.h"
#include 
<string>

class Borrowable : public Decorator
{
public:
    Borrowable();
    Borrowable(Items
*);
    
virtual ~Borrowable();

    
void SetBorrower(std::string);
    
void Display();
    
void BorrowItem();
private:
    std::
string m_strBorrower;
};

//Borrowable.cpp
#include "stdafx.h"
#include 
"Borrowable.h"
#include 
<iostream>

using namespace std;

Borrowable::Borrowable()
{

}

Borrowable::Borrowable(Items
* pItem) : Decorator(pItem)
{

}

Borrowable::
~Borrowable()
{

}

void Borrowable::SetBorrower(string strBorrower)
{
    m_strBorrower 
= strBorrower;
}

void Borrowable::Display()
{
    m_pItem
->Display();
    BorrowItem();
}

void Borrowable::BorrowItem()
{
    cout 
<< "借給:" << m_strBorrower << endl;
}

//main.cpp
#include "stdafx.h"
#include 
"Items.h"
#include 
"Book.h"
#include 
"Video.h"
#include 
"Decorator.h"
#include 
"Borrowable.h"

int main(int argc, char* argv[])
{
    Items
* pItem = new Book("深入淺出設計模式"10);
    pItem
->Display();
    pItem 
= new Video("反恐24小時"24200);
    Borrowable
* pBorrow = new Borrowable(pItem);
    pBorrow
->SetBorrower("張三");
    pBorrow
->Display();
    
    
return 0;
}

上面,我們顯示了一本書的信息,并且將一本影碟借給張三。

最后輸出為:
書名:深入淺出設計模式 數量:10
電影名:反恐24小時 數量:24 播放時間:200分鐘
借給:張三
posted on 2009-02-10 21:31 emptysoul 閱讀(844) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧洲一区| 欧美在线黄色| 亚洲视频综合在线| 在线精品亚洲| 黄色一区二区在线观看| 欧美性猛交xxxx乱大交退制版| 久久久久国内| 久久精品一区二区三区中文字幕| 一区二区激情视频| 亚洲国产婷婷香蕉久久久久久99| 亚洲日韩欧美视频一区| 影音先锋亚洲视频| 精品不卡一区二区三区| 国产一区二区三区免费在线观看| 国产精品日韩精品欧美精品| 国产精品视频不卡| 国产欧美日韩一区二区三区在线观看| 欧美日韩亚洲不卡| 欧美三级电影精品| 欧美日韩亚洲视频| 欧美另类女人| 国产精品porn| 国产在线精品一区二区夜色| 亚洲日本理论电影| 久久国产乱子精品免费女| 美女成人午夜| 9l国产精品久久久久麻豆| 久久精品官网| 国产精品久久久久久久久久尿| 精品99视频| 欧美一区三区三区高中清蜜桃 | 国产精品成人午夜| 国产一区欧美日韩| 一区二区三区视频在线播放| 久久精品九九| 日韩一区二区高清| 久久综合色一综合色88| 国产精品视频久久一区| 一区二区高清视频| 欧美国产大片| 久久精品官网| 国产噜噜噜噜噜久久久久久久久| 日韩视频在线免费| 欧美成人精精品一区二区频| 午夜日韩激情| 欧美二区不卡| 亚洲视频专区在线| 免费欧美高清视频| 亚洲欧美精品| 国产精品二区在线| 日韩亚洲一区二区| 欧美成人免费小视频| 亚洲欧美日韩一区二区三区在线观看| 欧美国产视频在线| 亚洲第一福利视频| 麻豆精品视频在线| 欧美一级大片在线观看| 国产精品免费看久久久香蕉| 亚洲视频中文| 亚洲私拍自拍| 国产精品免费看久久久香蕉| 亚洲自拍另类| 亚洲男人第一av网站| 国产精品女同互慰在线看| 亚洲伊人一本大道中文字幕| 99热这里只有精品8| 欧美日韩精品是欧美日韩精品| 日韩一级在线观看| av不卡免费看| 国产精品夜夜夜| 久久久天天操| 欧美成人四级电影| 夜夜嗨av一区二区三区| 夜夜嗨网站十八久久| 欧美日韩一区免费| 香蕉国产精品偷在线观看不卡 | 亚洲男人的天堂在线| 亚洲网站啪啪| 国产中文一区二区| 免费久久久一本精品久久区| 麻豆久久久9性大片| 最新国产成人av网站网址麻豆| 亚洲高清在线播放| 欧美日本国产| 亚洲欧美日韩国产另类专区| 午夜欧美大尺度福利影院在线看| 狠狠色丁香婷婷综合| 欧美激情精品久久久久久免费印度 | 在线亚洲激情| 欧美一区二区视频观看视频| 在线日韩一区二区| 亚洲另类在线视频| 国产精品你懂的在线欣赏| 久热精品视频| 欧美日韩视频在线观看一区二区三区| 午夜精品久久久久久99热软件| 久久国产精品72免费观看| 亚洲国产精品一区二区www在线| 亚洲精品国产无天堂网2021| 国产精品久久久久91| 欧美成人精品高清在线播放| 欧美日韩1234| 巨胸喷奶水www久久久免费动漫| 欧美成人综合| 久久久女女女女999久久| 欧美日韩国产91| 午夜精品在线观看| 久久久www成人免费无遮挡大片| 影音先锋在线一区| 欧美午夜宅男影院| 欧美ab在线视频| 久久精品亚洲乱码伦伦中文 | 欧美在线视频不卡| 亚洲久久一区二区| 国内视频精品| 国产视频在线观看一区二区三区 | 国产日韩欧美精品综合| 欧美日韩视频| 国产精品色午夜在线观看| 久久综合久久综合久久综合| 亚洲综合三区| 亚洲欧洲av一区二区三区久久| 一区二区三区四区精品| 99pao成人国产永久免费视频| 91久久国产综合久久蜜月精品| 久久国产乱子精品免费女| 欧美一区激情| 久久精品久久99精品久久| 免费观看成人www动漫视频| 欧美激情精品久久久久久| 欧美二区乱c少妇| 亚洲日本va午夜在线电影| 日韩一级黄色av| 亚洲欧美日韩一区| 亚洲欧美国产不卡| 午夜精品福利视频| 猫咪成人在线观看| 日韩视频免费观看高清完整版| 亚洲人在线视频| 欧美综合国产| 欧美三区视频| 亚洲国产精品一区在线观看不卡 | 伊人激情综合| 一本色道久久88综合日韩精品| 久久精品综合网| 日韩视频一区二区在线观看 | 91久久线看在观草草青青| 亚洲自拍偷拍一区| 久热爱精品视频线路一| 国产一区视频观看| 亚洲欧美日韩一区| 99精品国产热久久91蜜凸| 美女视频网站黄色亚洲| 国产一级揄自揄精品视频| 亚洲自拍电影| 一区二区三区蜜桃网| 欧美区一区二区三区| 一区二区av在线| 亚洲免费高清视频| 欧美日韩综合在线| 午夜精品福利在线| 99精品视频免费全部在线| 欧美女同视频| 香蕉乱码成人久久天堂爱免费 | 午夜精品免费视频| 亚洲伊人一本大道中文字幕| 91久久精品一区二区三区| 欧美视频四区| 亚洲在线一区二区| 久久电影一区| 亚洲三级色网| 亚洲一区二区三区免费在线观看 | 久久久噜噜噜久久| 女同性一区二区三区人了人一| 国产日韩欧美二区| 欧美激情国产日韩| 亚洲激情电影在线| 亚洲一区三区视频在线观看| 亚洲福利专区| 欧美中文字幕| 久久久久久电影| 国产精品欧美久久久久无广告| 亚洲精品系列| 一区二区三区www| 欧美福利视频网站| 亚洲在线一区二区| 亚洲精品美女在线观看| 欧美片网站免费| 一本到12不卡视频在线dvd| 一区二区三区你懂的| 欧美日产国产成人免费图片| 99国产精品视频免费观看| 狠狠爱综合网| 久久久在线视频| 欧美激情四色| 亚洲欧美在线高清| 亚洲成色精品| 国产精品久久久久久久久久尿| 欧美国产三级| 亚洲精品人人|