Was ist der richtige Weg, um einen Wrapper um das Betriebssystem herum zu implementieren? [geschlossen]
Posted: 03 Jan 2025, 16:35
Angenommen, ich habe eine Klasse „Betriebssystem“, die nur eine Schnittstelle für das Betriebssystem deklariert.
Es gibt auch eine Erweiterung für diese Schnittstelle mit mehr Methoden
Außerdem habe ich eine Klasse „actual_OS“, die read() als ::read, write als ::write() usw. definiert. „actual_OS“ wird von „OS“ abgeleitet. Jetzt möchte ich die Klasse „actual_OS_with_socks“ definieren, die dasselbe tut, jedoch für eine erweiterte Betriebssystemschnittstelle. Was ist der richtige Weg, dies zu tun? So?
Ist das eine gute Vorgehensweise? Kann eine doppelte Vererbung vermieden werden, während die Trennung zwischen der grundlegenden POSIX-Schnittstelle und der Socket-Schnittstelle beibehalten wird? Ist das überhaupt der richtige Weg, dies zu tun?
(Ich benötige den OS-Wrapper zu Testzwecken)
Code: Select all
struct OS {
virtual int read();
virtual int write();
virtual int open();
virtual int close();
/* ... a lot of methods */
};
Code: Select all
struct OS_with_socks: OS {
virtual int socket();
virtual int bind();
virtual int listen();
/* ... a lot of other methods */
};
Code: Select all
struct actual_OS_with_socks: OS_with_socks, actual_OS {
/* implementation of methods socket, listen, bind, e.t.c */
}
(Ich benötige den OS-Wrapper zu Testzwecken)