当前位置:编程学习 > 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买入 ");

     

补充:软件开发 , C语言 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,