国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

  • 正文
    • 1 外觀(guān)模式
    • 2 實(shí)例
    • 總結(jié)
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

《大話(huà)設(shè)計(jì)模式》解讀08-外觀(guān)模式

2024/10/20
1507
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

上篇文章,介紹了《大話(huà)設(shè)計(jì)模式》的第10章——模板方法。

本篇,來(lái)介紹《大話(huà)設(shè)計(jì)模式》的第12章——外觀(guān)模式。并通過(guò)C++代碼實(shí)現(xiàn)實(shí)例代碼的功能。

注:第11章介紹的是迪米特法則:如果兩個(gè)類(lèi)不必彼此直接通信,那么這兩個(gè)類(lèi)就不應(yīng)當(dāng)發(fā)生直接的相互作用。如果其中一個(gè)類(lèi)需要調(diào)用另一個(gè)類(lèi)的某一個(gè)方法的話(huà),可以通過(guò)第三者轉(zhuǎn)發(fā)這個(gè)調(diào)用

1 外觀(guān)模式

外觀(guān)模式(Facade):為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,此模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。

外觀(guān)模式的類(lèi)圖如下:

    Facade:外觀(guān)類(lèi),對(duì)子系統(tǒng)進(jìn)行管理,對(duì)接客戶(hù)端。SubSystem:子系統(tǒng)類(lèi),實(shí)現(xiàn)子系統(tǒng)的功能,處理外觀(guān)類(lèi)指派的任務(wù)。

2 實(shí)例

背景:書(shū)中小故事,股市行情很火,小菜的一些同事在炒股票,但大多是剛?cè)胧械?,什么都不懂,其中一個(gè)叫顧韻梅的同事,在大大好的牛市行情里,卻連連虧損。哈,典型的新股民特征。還是要找懂行的人,基金經(jīng)理。

題目:用代碼的形式來(lái)實(shí)現(xiàn)自己操作股票以及基金經(jīng)理操作股票。

2.1 版本一:自己操作股票

版本一的實(shí)現(xiàn)就是定義一些股票類(lèi),提供買(mǎi)入和賣(mài)出的接口,然后客戶(hù)自己操作買(mǎi)入和賣(mài)出。

2.1.1 股票類(lèi)

股票類(lèi)的實(shí)現(xiàn)如下,這里以股票1、股票2和國(guó)債1進(jìn)行示例:

// 股票1
class Stock1
{
public:
    void Buy()
    {
        printf("股票1買(mǎi)入n");
    }   
    
    void Sell()
    {
        printf("股票1賣(mài)出n");
    }     
};

// 股票2
class Stock2
{
public:
    void Buy()
    {
        printf("股票2買(mǎi)入n");
    }   
    
    void Sell()
    {
        printf("股票2賣(mài)出n");
    }     
};

// 國(guó)債1
class NationDebt1
{
public:
    void Buy()
    {
        printf("國(guó)債1買(mǎi)入n");
    }   
    
    void Sell()
    {
        printf("國(guó)債1賣(mài)出n");
    }     
};

2.1.2 主函數(shù)

首先,實(shí)例化對(duì)應(yīng)的股票,

然后,就可以調(diào)用對(duì)應(yīng)的買(mǎi)入和賣(mài)出的接口了。

int main()
{
    Stock1 stock1;
    Stock2 stock2;
    NationDebt1 nationDebt1;
    
    stock1.Buy();
    stock2.Buy();
    nationDebt1.Buy();
    
    stock1.Sell();
    stock2.Sell();
    nationDebt1.Sell();
    
    return 0;
}

代碼運(yùn)行效果如下:

2.2 版本二:基金經(jīng)理操作股票

版本一的實(shí)現(xiàn)比較簡(jiǎn)單,是客戶(hù)自己操作股票,對(duì)于新手股民,可能一頓操作猛如虎,一看收益二百五。如果通過(guò)購(gòu)買(mǎi)基金,由基金經(jīng)理來(lái)操作股票,收益結(jié)果可能不同。

修改后的代碼如下:

// 基金
class Fund
{
public:
    void Buy()
    {
        printf("基金操作買(mǎi)入:n");
        m_stock1.Buy();
        m_stock2.Buy();
        m_nationDebt1.Buy();
    }   
    
    void Sell()
    {
        printf("基金操作賣(mài)出:n");
        m_stock1.Sell();
        m_stock2.Sell();
        m_nationDebt1.Sell();
    }   
    
private:
    Stock1 m_stock1;
    Stock2 m_stock2;
    NationDebt1 m_nationDebt1;     
};

int main()
{
    Fund fund;
    
    fund.Buy();
    
    fund.Sell();
    
    return 0;
}

運(yùn)行效果如下:

總結(jié)

本篇介紹了設(shè)計(jì)模式中的外觀(guān)模式,并通過(guò)購(gòu)買(mǎi)股票和基金的實(shí)例,使用C++編程,來(lái)演示外觀(guān)模式的使用。

文章推薦

《大話(huà)設(shè)計(jì)模式》解讀01-簡(jiǎn)單工廠(chǎng)模式

《大話(huà)設(shè)計(jì)模式》解讀02-策略模式

《大話(huà)設(shè)計(jì)模式》解讀03-裝飾模式

《大話(huà)設(shè)計(jì)模式解讀》04-代理模式

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶(hù)資源
  • 寫(xiě)文章/發(fā)需求
立即登錄
耒阳市| 建平县| 阿尔山市| 浑源县| 浦县| 莱芜市| 元氏县| 上饶市| 建瓯市| 攀枝花市| 鱼台县| 罗源县| 冕宁县| 丁青县| 清涧县| 会东县| 阜宁县| 乌鲁木齐市| 乳源| 宜城市| 阳谷县| 丹巴县| 老河口市| 汪清县| 离岛区| 门头沟区| 东兰县| 迁西县| 镇原县| 敦煌市| 鹰潭市| 丰都县| 大荔县| 南昌市| 青河县| 望都县| 武汉市| 天峨县| 方正县| 横峰县| 准格尔旗|