Observer
// Platoon.h
#ifndef _PLATOON_H
#define _PLATOON_H
#include "Soldier.h"
#include <string>
using namespace std;
class Platoon {
private:
Soldier soldierList;
public:
void reportToPlatoon(const Soldier & mySoldier);
int getMemberNum();
void sendOrder(string orderMessage);
};
#endif
說明:
- 設計『廣播』物件,傳遞指令給所屬陣列物件。
- Client 主程式中,建立 3 個 Soldier 物件,並使其向連隊報到。
- 接著向連隊成員下達命令。
- 各 Soldier 物件接到指令後,進行動作。
// Client.cpp
#include "Client.h"
int Client::main(int argc, const char ** argv)
{
this->myPlatoon.reportToPlatoon(new Soldier("001", "John"));
this->myPlatoon.reportToPlatoon(new Soldier("002", "Fred"));
this->myPlatoon.reportToPlatoon(new Soldier("003", "Richard"));
this->myPlatoon.sendOrder("Get your gears!");
this->myPlatoon.sendOrder("Give me 30 push-ups!");
}