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!");

}