為子系統中的一組介面提供乙個一致的介面,facade模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用.
main.cc:
#include
#include "runner_club.h"
/*design_pattern:"facade"
runner club two activitys:
recruit runner (propaganda system, human resources system)
long-distance race(public relation system, organizational systems)
*/int main()
runnerclub:
//runner_club.h
#ifndef helendp_source_runner_club_h_
#define helendp_source_runner_club_h_
#include "human_resource_system.h"
#include "organizational_system.h"
#include "propaganda_system.h"
#include "public_relation_system.h"
class runnerclub;
#endif
//runner_club.cc
#include "runner_club.h"
#include
using
namespace
std;
runnerclub::runnerclub()
runnerclub::~runnerclub()
void runnerclub::recruitrunner()
void runnerclub::longdistancerace()
publicrelationsystem:
//public_relation_system.h
#ifndef helendp_source_public_relation_system_h_
#define helendp_source_public_relation_system_h_
class publicrelationsystem;
#endif
//public_relation_system.cc
#include "public_relation_system.h"
#include
using
namespace
std;
publicrelationsystem::publicrelationsystem()
publicrelationsystem::~publicrelationsystem()
void publicrelationsystem::run()
propagandasystem:
//propaganda_system.h
#ifndef helendp_source_propaganda_system_h_
#define helendp_source_propaganda_system_h_
class propagandasystem;
#endif
//propaganda_system.cc
#include "propaganda_system.h"
#include
using
namespace
std;
propagandasystem::propagandasystem()
propagandasystem::~propagandasystem()
void propagandasystem::run()
organizationalsystem:
//organizational_system.h
#ifndef helendp_source_organizational_system_h_
#define helendp_source_organizational_system_h_
class organizationalsystem;
#endif
//organizational_system.cc
#include "organizational_system.h"
#include
using
namespace
std;
organizationalsystem::organizationalsystem()
organizationalsystem::~organizationalsystem()
void organizationalsystem::run()
humanresourcesystem:
//human_resource_system.h
#ifndef helendp_source_human_resource_system_h_
#define helendp_source_human_resource_system_h_
class humanresourcesystem;
#endif
//human_resource_system.cc
#include "human_resource_system.h"
#include
using
namespace
std;
humanresourcesystem::humanresourcesystem()
humanresourcesystem::~humanresourcesystem()
void humanresourcesystem::run()
**和uml圖(ea)工程檔案,最後會整理打包上傳.
結構型模式 facade 外觀
1.意圖 為子系統中的一組介面提供乙個一致的介面,facade模式定義了乙個高層介面。口使得這一子系統更加容易使用。2.動機 將乙個系統劃分成為若干個子系統有利於降低系統的複雜性。乙個常見的設計目標是使 子系統間的通訊和相互依賴關係達到最小。達到該目標的途徑之一是就是引入乙個外觀 facade 物件...
Facade 外觀(結構型模式)
問題 坦克根據外部環境不一樣,可以分別由引擎 控制器 車輪 車身等組合構成。動機當客戶程式與各子系統有過多的耦合,隨著客戶程式和各子系統的演化,這種過多的耦合面臨很多變化的挑戰。如何簡化客戶程式和子系統間的互動介面?如何將客戶程式的演化和內部的子系統的變化之間依賴相互解耦?意圖為子系統中的一組介面提...
結構型模式 Facade(外觀)模式
定義 為子系統中的一組介面提供乙個一致的介面,外觀模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。定義角色 outlook功能 每個人都可能有很多郵箱,msn的 網易的 公司的 google的。如果每天都登入各個郵箱收信非常麻煩,而且也可能漏收郵件。所以使用諸如outlook這樣的客戶端...