T-Rex: Softwarepattern für Kumulierung aus einer Liste gesucht

Beitrag lesen

Moin,

Ich hab da so ein Objekt (nennen wir es Zahlen-Objekt). Das speichert und berechnet verschiedene Inhalte. Es gibt mehrere Methoden, welche eine Zahl zurück geben. Das sieht vereinfacht dann ungefähr so aus:

public function getZahl1() { return $this->zahl1; }

public function getZahl2() { return $this->zahl2; }

public function getZahl3() { return $this->zahl3; }

In Wirklichkeit gibt es in den Methoden noch Berechnungen, was für meine Frage irrelevant ist. Wichtig ist, dass am Ende eine Zahl zurück geliefert wird.

Es kann mehrere dieser Objekte geben. Diese werden in einem anderen Objekt (nennen wir es Listen-Objekt) gespeichert. In diesem Listen-Objekt ist ein Array, was die Zahlen-Objekte speichert.

Jetzt gibt es mehrere fast identische Methode, welche die getZahlX Methoden kumulieren und die Summe zurück geben. Die sehen vereinfacht gesagt so aus:

public function getZahl1()
{
	$return = 0;
	foreach( $this->arZahlObjekte as $objekt )
	{
		$return += $objekt->getZahl1();
	}
	return round( $return, 2);
}

public function getZahl2()
{
	$return = 0;
	foreach( $this->arZahlObjekte as $objekt )
	{
		$return += $objekt->getZahl2();
	}
	return round( $return, 2);
}

Wie man sieht gibt es nur zwei Unterschiede und das sind die Methodennamen. Witzigerweise heißen sie auch noch gleich, also im Zahlen-Objekt und im Listen-Objekt, was eventuell der Vereinfachung der Schreibweise hilft.

Da ich ca. 10 solcher Methoden habe (und sowas immer mal wieder vorkommt), ist meine Frage ob man das irgendwie einfacher schreiben kann?

Gruß T-Rex + T-Rex + T-Rex + T-Rex + T-Rex + T-Rex + T-Rex = ?