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

設計模式C++實現八:外觀模式

編輯:C++入門知識

設計模式C++實現八:外觀模式


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

使用場景:首先,在設計初期階段,應該要有意識的將不同的兩個層分離。比如經典的三層結構,就需要考慮在數據訪問層和業務邏輯層、業務邏輯層和表示層的層與層之間建立外觀的Facade。其次,在開發階段,子系統往往因為不斷的重構演化而變得越來越復雜,大多數的模式使用時也都會產生很多很小的類,這本是好事,但也給外部調用它們的用戶程序帶來了使用上的困難,增加Facade可以提供一個簡單的接口,減少他們之間的依賴。第三,在維護一個遺留的大系統是,可能這個系統已經非常難以維護和擴展了,但因為它包含非常重要的功能,新的需求開發必需要依賴他。此時使用外觀模式是非常合適的。

 

#ifndef FACADE_H
#define FACADE_H
#include
using namespace std;


class Stock1
{
public:
	void Buy(){ cout << "買入股票1\n"; }
	void Sell(){ cout << "賣出股票1\n"; }
};

class Stock2
{
public:
	void Buy(){ cout << "買入股票2\n"; }
	void Sell(){ cout << "賣出股票2\n"; }
};

class Stock3
{
public:
	void Buy(){ cout << "買入股票3\n"; }
	void Sell(){ cout << "賣出股票3\n"; }
};

class NationalDebt1
{
public:
	void Buy(){ cout << "買入國債1\n"; }
	void Sell(){ cout << "賣出國債1\n"; }
};

class Reality1
{
public:
	void Buy(){ cout << "買入房地產1\n"; }
	void Sell(){ cout << "賣出房地產1\n"; }
};

class Fund
{
	Stock1 st1;
	Stock2 st2;
	Stock3 st3;
	NationalDebt1 Nd;
	Reality1 Re;
public:
	void Buy()
	{
		st1.Buy();
		st2.Buy();
		st3.Buy();
		Nd.Buy();
		Re.Buy();
	}

	void Sell()
	{
		st1.Sell();
		st2.Sell();
		st3.Sell();
		Nd.Sell();
		Re.Sell();
	}
};
#endif

#include"Facade.h"

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


 

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