外观模式
前序
这回小菜同学和大鸟讨论起了关于股票的事情,小菜提到最近股市很火,不过他的同事一直在亏钱。而大鸟说道:“如果你的同事花钱去投资基金,则不会亏的这么厉害。基金将所有投资者的钱全部集中起来,交由专业的经理人进行管理,投资于股票、债券、外汇等领域。”而个人进行投资股票,对股票的联系太多,反而不利于操作,这在软件中就称为耦合性过高。而有了基金之后,众多的用户只和基金打交道,关心基金的上涨和下跌就可以了,应此消除了过高的耦合性。
于是大鸟便让小菜将股民炒股票的代码写出来看看。
股民炒股票代码
#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语言 ,