OOP C ++ правильное использование, чистое кодирование - PullRequest
4 голосов
/ 11 февраля 2020

Я много программировал 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...