Я хочу создать чистый виртуальный класс, который наследуют другие классы, и каждый класс реализует одну и ту же функцию, но с разной реализацией: скажем, я реализую класс Server
class Server
{
Server();
~Server()=0;
virtual void send(const std::string& string);
virtual std::string receive();
};
class TcpServer:public Server
{
TcpServer();
~TcpServer();
void send(const std::string& string)
{...}
std::string receive(){...}
};
class UdpServer : public Server
{
UdpServer ();
~UdpServer ();
void send(const std::string& string)
{...}
std::string receive(){...}
};
main()
{
Server* server = new TcpServer()/UdpServer;
}
Как называется этот шаблон проектирования? потому что я не понимаю, является ли это Адаптер или Композит или Фасад, и если у вас есть другое представление о том, как реализовать это поведение.