Designfrage

10/09/2015 - 13:48 von Stefan+Usenet | Report spam
Ich baue mir gerade für meine Collections eine generische
Filter-Funktion, mit der ich dann via Closures beliebige Filter
applizieren kann. Jetzt bin ich mit mir selbst uneins, ob ich
lieber:

#v+
public function filter(\Closure $function) {
$this->items = array_filter($this->items, $function);
return $this;
}
#v-

oder

#v+
public function filter(\Closure $function) {
$result = clone $this;
$result->items = array_filter($result->items, $function);
return $result;
}
#v-

schreiben soll (ob also das Objekt selbst modifiziert wird, oder aber
ob es unveràndert bleibt und eine Kopie zurückgegeben wird). Im
Prinzip geht natürlich beides, man muss es halt nur beim Aufruf
wissen und entsprechend berücksichtigen. Aber welche Variante würde
jemand anderer eher erwarten bzw. intuitiver finden?

Servus,
Stefan

http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

2006 Jahre seit der Schlacht im Teutoburger Wald! 2006 Jahre ohne Stefan. Buddelt und röchelt euch.
(Sloganizer)
 

Lesen sie die antworten

#1 Niels Braczek
10/09/2015 - 14:53 | Warnen spam
Am 10.09.2015 um 13:48 schrieb Stefan Froehlich:

(ob also das Objekt selbst modifiziert wird, oder aber
ob es unveràndert bleibt und eine Kopie zurückgegeben wird).



Letzteres, da 1. der Trend zu Immutables geht, und 2. man das von den
Array-Funktionen so gewohnt ist.

MfG
Niels

| New Stars on the Horizon: GreenCape · nibralab · laJoom |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · e-Commerce · Joomla! Content Management |

Ähnliche fragen