Funktionen in Klasse übernehmen oder nicht?
-
Hallo,
ich sitze gerade an einem Projekt im Bereich Bildanalyse. Ich habe dazu eine designtechnische Frage: Ich habe eine ganze Menge an Hilfsfunktionen geschrieben (Gradientenberechnung, Fehlerbilder, etc.). Diese Funktionen passen sinngemäß in keine Klasse rein. Deswegen stehen die Funktionen einfach separat in einer Datei.
Sollte man diese Funktionen trotzdem alle in eine Art Hilfsklasse aufnehmen und static machen oder so? Was spricht dafür? Was dagegen? Übersicht?
Vielen Dank, mbu.
-
Funktionen static in eine Klasse zu packen ist unnötig. Dafür gibt es ja Namespaces und eben jene würde ich in dem Fall benutzen. Es ist aber nicht unbedingt erforderlich, da sich die Funktionen bestimmt schon in dem Namensraum deines Projektes befinden (ich geh mal davon aus, dass sie nicht global sind).
-
Richtig vermutet, die Funktionen befinden sich im namespace meines Projekts. Das ganze ist also kein schlechter Stil sondern durchaus in Ordnung so?
-
ich denke auch, es ist in ordnung so. guck ma, die ganzen funktionen aus <algorithm> sind auch im namespace und in keiner klasse. Und deine Funktionen sind ja auch sozusagen algorithmen die auf verschiedene Bilder angewendet werden können.
ich habs mit meiner img-lib btw genau so gemacht
und OpenIL machts soweit ich weiß auch so, und viele andere auch. Man kann eben nciht alles in OOP machen
-
mbu schrieb:
...Das ganze ist also kein schlechter Stil sondern durchaus in Ordnung so?
Hi,
japp !
Ist eigentlich eher schlechter Stil, "fette Klassen" zu produzieren.
Hat Herb Sutter mal einen eigenen Artikel anhand von std::string drüber geschrieben.Gruß,
Simon2.
-
Simon2 schrieb:
Ist eigentlich eher schlechter Stil, "fette Klassen" zu produzieren.
Hat Herb Sutter mal einen eigenen Artikel anhand von std::string drüber geschrieben.hast du mal nen link?
-
fgvsd schrieb:
Simon2 schrieb:
Ist eigentlich eher schlechter Stil, "fette Klassen" zu produzieren.
Hat Herb Sutter mal einen eigenen Artikel anhand von std::string drüber geschrieben.hast du mal nen link?
Wenn es nicht grade in seinen Büchern steht, könntest du vielleicht im "Guru of the Week" von Herb Sutters Seite etwas finden.
http://www.gotw.ca/gotw/index.htm
Wobei ich glaube ähnliches in einen der Scott Meyer Bücher gelesen zu haben (Effektiv C++...).
cu André
-
fgvsd schrieb:
Simon2 schrieb:
Ist eigentlich eher schlechter Stil, "fette Klassen" zu produzieren.
Hat Herb Sutter mal einen eigenen Artikel anhand von std::string drüber geschrieben.hast du mal nen link?
Also ich hab's aus dem exceptional style.
Ob's das irgendwo online gibt, weiß ich nicht....Gruß,
Simon2.
-
Wozu sollen alle diese Funktionen in eine Klasse, wenn sie nicht direkt miteinander zu tun haben?
-
D schrieb:
Wozu sollen alle diese Funktionen in eine Klasse, wenn sie nicht direkt miteinander zu tun haben?
wenn sie völlig unabhängig voneinander sind, dann macht es wenig sinn. aber gerade in der bildverarbeitung kann es von vorteil sein, auf den ersten blick unabhängige methoden in einer klasse zu vereinen, wenn man dadurch redundante methodendurchläufe vermeiden kann. dann kümmert sich die tool klasse ums caching und der sonstige code bleibt übersichtlicher.