gpt4 book ai didi

c++ - 什么样的 OOP 设计决策适合客户端/服务器应用程序中的协议(protocol)情况?

转载 作者:行者123 更新时间:2023-11-28 01:13:38 25 4
gpt4 key购买 nike

我正在用 C++ 编写客户端/服务器应用程序,需要实现简单的协议(protocol)才能正确发送和接收数据。我有一个服务器协议(protocol)类,它可以将消息转换为我的格式,然后再从这种格式转换。
什么是服务器端协议(protocol):

class BaseProtocol {
protected:
int NumberOfBytesInPackOfText;
std::string serviceString;
public:
BaseProtocol(int SizeOfTextPack, const char* extraString):
NumberOfBytesInPackOfText(SizeOfTextPack),
serviceString(extraString) {}
virtual std::string& convertToSystemMessage(const char* message)=0;
virtual std::string& convertToNativeMessage(const char* message)=0;
virtual ~BaseProtocol() {
NumberOfBytesInPackOfText = 0;
serviceString = "";
}
};

class SimpleProtocol: public BaseProtocol {
public:
SimpleProtocol(int SizeOfTextPack, const char* service):
BaseProtocol(SizeOfTextPack, service) {}
std::string& convertToSystemMessage(const char* nativeMessage);
std::string& convertToNativeMessage(const char* systemMessage);
};

现在我无法决定在客户端应用程序上实现该协议(protocol)的最佳决定。服务器协议(protocol)的友元类?或者我可能需要从服务器协议(protocol)中提取子类,然后客户端协议(protocol)将从此类派生?

最佳答案

我会创建一个独立于客户端和服务器的协议(protocol)类。他们每个人都可以调用该类的函数,而不是从该类继承。

这遵循favoring composition over inheritance的原则.此外,客户端和服务器都不是“协议(protocol)解释器”。相反,他们每个人都只需要使用该协议(protocol)。

关于c++ - 什么样的 OOP 设计决策适合客户端/服务器应用程序中的协议(protocol)情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/484882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com