サーバーとクライアントの 2 つのプログラムがあります。
class client
{
private:
Network net;
Gui gui;
};
これがネットワーククラスです
class Network
{
public:
void receivePacket(packet)
{
Protocol::readPacket(packet)
}
};
ここにGuiクラスがあります
class Gui
{
private:
std::string informations;
public:
void displayInfo();
void updateInformation(information);
};
そして、これがプロトコルです
class Protocol
{
static void readPacket(packet)
{
if (packet.command == "refreshGui")
//I need somehow to call GUI::UpdateInformation here and give the information from packet.information
}
};
プロトコルは「静的クラス」と見なされます。つまり、インスタンス化すべきではありません。つまり、サーバーから をProtocol::readPacket
取得するときpacket
に、情報を に送信できるはずGUI
です。ただし、常にそうであるとは限らないため、ポイント/参照を渡すことは私が探しているものではありません。
うまく説明されていませんが、アイデアは次のとおりProtocol::readPacket
ですGUI
。
Observer-pattern の使用について誰かがアドバイスをくれました。Protocol
サブジェクトとGUI
オブザーバーになります。しかし、Protocol をインスタンス化しないと作れませんでした。
Protocol をインスタンス化せずにそれを行う方法はありますか?