fk: OOP-Anfängerfrage... Klassenstruktur

Beitrag lesen

ich hatte das gleiche problem mit einer mitarbeiterin. diese hat einfach den prozeduralen teil in eine klasse gepackt und den konstruktor aufgerufen. in diesem fall kann man den konstruktor auch statisch aufrufen, ohne eine instanz der klasse zu erzeugen.

So sehen meine Klassen im Prinzip aus:

class name_der_klasse
{
var $a;
var $b;
var $c;

name_der_klasse($x, $y, $z)
  {

hier steht dein prozedurales programm

/*
   hier steht jede Menge Code
   und zwischendrin werden die
   Variablen $a, $b und $c gesetzt...
   */
   $this -> a = 'irgend was';
   $this -> b = 'noch was';
   $this -> c = 'sonst was';

hier endet dein prozedurales programm

}

function return_a()
  {
   return $this->a;
  }

function return_b()
  {
   return $this->b;
  }

function return_c()
  {
   return $this->c;
  }
}

die idee der objektorientierung ist ua. die sammlung von progrämmchen mit gemeinsamen daten in einer klasse.
ein beispiel mag die MATH klasse sein. diese progrämmchen werden zwar nur statisch aufgerufen. aber du hast zb. MATH.sin, MATH.cos usw., also eine sammlung von progrämmchen schön nach zusammenhang geordnet.
mit diesem gedankenansatz fällt dir die umsetzung hoffentlich etwas leichter.

du solltest in deinem konstruktor nur die anfangswerte setzen. wenn du dann eine instanz der klasse erzeugst, hat das objekt definierte ausgangswerte.

dann könnte es eine methode 'arbeit' geben, welche im ersten ansatz einfach dein bisheriges prozedurales programm ist.
dieses könnstest du dann in kleinere einzelteile zerlegen, und durch methodenaufrufe ersetzen.

hast du genügend kleine methoden erstellt, kannst du dich wieder dem konstruktor zuwenden, und die übergebenen parameter auswerten und in deren abhängigkeit die kleinen methoden aufrufen.

willst du später mal mehr funktionalität in die klasse einbauen, machst du einfach eine neue methode.