程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 外觀模式

外觀模式

編輯:關於C語言

前序
這回小菜同學和大鳥討論起了關於股票的事情,小菜提到最近股市很火,不過他的同事一直在虧錢。而大鳥說道:“如果你的同事花錢去投資基金,則不會虧的這麼厲害。基金將所有投資者的錢全部集中起來,交由專業的經理人進行管理,投資於股票、債券、外匯等領域。”

而個人進行投資股票,對股票的聯系太多,反而不利於操作,這在軟件中就稱為耦合性過高。而有了基金之後,眾多的用戶只和基金打交道,關心基金的上漲和下跌就可以了,應此消除了過高的耦合性。

於是大鳥便讓小菜將股民炒股票的代碼寫出來看看。

股民炒股票代碼
#include <stdio.h>

 

// 股票1

class Stock1

{

public:

       void Sell() // 賣股票

       {

              printf("股票1賣出 ");

       }

      

       void Buy() // 買股票

       {

              printf("股票1買入 ");

       }

};

 

// 股票2

class Stock2

{

public:

       void Sell() // 賣股票

       {

              printf("股票2賣出 ");

       }

      

       void Buy() // 買股票

       {

              printf("股票2買入 ");

       }

};

 

// 股票3

class Stock3

{

public:

       void Sell() // 賣股票

       {

              printf("股票3賣出 ");

       }

      

       void Buy() // 買股票

       {

              printf("股票3買入 ");

       }

};

 

// 國債1

class NationalDebt1

{

public:

       void Sell() // 賣國債

       {

              printf("國債賣出 ");

       }

      

       void Buy() // 買國債

       {

              printf("國債買入 ");

       }

};

 

// 房地產1

class Realty1

{

public:

       void Sell() // 賣房地產

       {

              printf("房地產賣出 ");

       }

      

       void Buy() // 買房地產

       {

              printf("房地產買入 ");

       }

};

 

int main()

{

       Stock1* gu1 = new Stock1();

       Stock2* gu2 = new Stock2();

       Stock3* gu3 = new Stock3();

       NationalDebt1* nd1 = new NationalDebt1();

       Realty1* rt1 = new Realty1();

      

       gu1->Buy();

       gu2->Buy();

       gu3->Buy();

       nd1->Buy();

       rt1->Buy();

      

       gu1->Sell();

       gu2->Sell();

       gu3->Sell();

       nd1->Sell();

       rt1->Sell();

      

       delete gu1;

       delete gu2;

       delete gu3;

       delete nd1;

       delete rt1;

       return 0;

}

大鳥看後答到:“很好,如果我們現在增加基金類,將如何做?”

外觀模式
為子系統中的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。

實現方式(UML類圖)

\
實現代碼
#include <stdio.h>

 

// 股票1

class Stock1

{

public:

       void Sell() // 賣股票

       {

              printf("股票1賣出 ");

       }

      

       void Buy() // 買股票

       {

              printf("股票1買入 ");

       }

};

 

// 股票2

class Stock2

{

public:

       void Sell() // 賣股票

       {

              printf("股票2賣出 ");

       }

      

       void Buy() // 買股票

       {

              printf("股票2買入 ");

       }

};

 

// 股票3

class Stock3

{

public:

       void Sell() // 賣股票

       {

              printf("股票3賣出 ");

       }

      

       void Buy() // 買股票

       {

              printf("股票3買入 ");

     

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved