Я много программировал C в прошлом, пока не так много OOP. Мой вопрос о том, как правильно использовать объекты OOP. В первом примере, скажем, мы получаем UDP-сообщения и меняем их с младшего на старший порядок. В приведенном ниже примере методы из объекта BinarySwapper больше используются в функциональном программировании, чем в OOP.
. Мой вопрос заключается в том, должны ли методы BinarySwapper быть stati c, потому что они не обязательно должны быть методы этого экземпляра. Или это даже правильный способ кодирования OOP?
int main() {
WSASession session;
UDPSocket socket;
socket.bind(PORT);
BinarySwapper swapper;
while (true) {
char buffer[1024];
socket.recv(buffer);
swapper.swap(buffer);
// ... continue
}
}
Мой второй вопрос похож. Давайте возьмем следующий пример. Буфер символов просто редактируется в объектах, в конце я отправляю его.
int main() {
WSASession session;
UDPSocket socket;
socket.bind(PORT);
Message msg;
FormattedMessage formMsg;
while (true) {
char buffer[1024];
socket.recv(buffer);
msg.decode(buffer);
formMsg.format(buffer);
socket.send(buffer);
// ... continue
}
}
Это плохой стиль? Если да, то почему? OOP больше о наследовании и т. Д. Или о создании и уничтожении объектов "постоянно"? Я также мог бы запрограммировать его так, но он выглядит менее эффективным с точки зрения памяти и времени выполнения. Спасибо за вашу помощь.
while (true) {
Message msg = socket.recv();
msg.decode();
FormattedMessage formMsg(msg);
fromMsg.format();
socket.send(formMsg);
// ... continue
}