Methode einer Klasse nicht nur in der Klasse nutzen

baserider

Well-known member
ID: 174417
L
10 März 2007
682
23
Hi,

ich habe mir ne kleine Klasse zur Produktbewertung gemacht.

Darin gibt es eine Methode, dir mir aus der Anzahl der Punkte (1-5) die jeweiligen html-Ausgabe mit der entsprechenden Anzahl an Sternen generiert.

Jetzt habe ich gemerkt, das ich diese Funktion auch zur Erstellung einer Legende benötige, was ja nix mit der Klasse selber zu tun hat.

Was wäre denn besser, einfach ne normale Funktion machen und diese immer nutzen, oder nur für die Generierung der html-Ausgabe noch ne eigene Klasse machen? oder was wäre hier der beste weg?

derzeit:
PHP:
public function createStars(){
   for($i=0;$i<$this->points;$i++){
      ....
   }
}
 
Separation of concerns

Deine Klasse hat erstmal rein gar nichts mit HTML-Ausgaben zu tun, wenn du noch HTML-Ausgaben brauchst, dann bastelst du das außenrum (prozeduraler Code) oder du bastelst dir auch dafür eine Klasse.
 
hi,

naja die methode nutze ich zur erstellung der sterne für jedes produkt.

jetzt möchte ich einfach noch so ne art legende erstellen. diese ist ja nicht an ein produkt gebunden.
$this->points ist ja nur verfügbar wenn ich ein einzelnes produkt anzeige.
 
Separation of concerns

Deine Klasse hat erstmal rein gar nichts mit HTML-Ausgaben zu tun, wenn du noch HTML-Ausgaben brauchst, dann bastelst du das außenrum (prozeduraler Code) oder du bastelst dir auch dafür eine Klasse.

ok, auch wenn ich das trenne, dann ist es ja was anderes, ob ich die wertung für nen einzelnes produkt anzeige oder ob ich sowas machen will:

xxxxxx = gut
xxxx = mittel
xxx = weniger gut

usw. , das hat ja nix mit dem einzelnen produkt zu tun. wenn ich die legende erstelle, müste ich nen parameter übergeben. Aber für das produkt steht ja in der klasse die variable $this->points zur verfügung..das ist mein problem, da auf nen bestmögliches ergebnis zu kommen (DRY)