J
Du solltest vor allem aufpassen, nicht zu modular sein zu wollen. Es hat keinen großen Sinn, die höhreren Klassen auch von den unteren stark zu entkoppeln. http setzt nunmal auf TCP auf, warum sollte man sich also die Mühe machen ein http-Protokoll zu implementieren, das vom unterliegenden Protokoll unabhängig ist? Um so anwendungsspezifischer Du wirst um so spezieller wird Dein Code.
Bau Dir ne ordentliche TCP-Klasse und implementier dann Deine anderen Protokolle auf dieser Schnittstelle. So einfach ist das. Polymorphie scheint mir an dieser Stelle hauptsächlich Sinn zu machen, um auch "Fake-Klassen" reinstecken zu können. Quasi ne TCP-Instanz, die in ne Datei schreibt und Infos aus ner Datei liest, damit Du die höheren Schichten automatisch testen kannst und sowas.
Diese Konstruktion ist erstmal einfach, leicht zu implementieren, ohne daß Du Dich zu sehr einschränkst. Wenn Du mehr Flexibilität brauchst, dann kannste das später leicht hinzufügen, aber ich vermute fast, daß das vollkommen genügen wird.
MfG Jester