Portál AbcLinuxu, 26. dubna 2024 09:49
class Trieda { private $premenna; private $kolekcia; function __construct() { $this->kolekcia = new Kolekcia; } function getPremenna() ... function getKolekcia() ... function __get($name) { switch ($name) { case "premenna": return $this->getPremenna(); case "kolekcia": return $this->getKolekcia(); default: throw new MemberAccessException($name); } } }ktora obsahuje kolekciu kolekcia:
class Kolekcia { function add(Polozka $item) ... function remove(Polozka $item) ... }do ktorej sa pridavaju polozky v kazdej polozke by som chcel mat moznost pristupovat k premennej tiredy "Trieda":
class Polozka { function metoda() { echo ...->premenna; } }Viete mi poradit co najkratsi sposob ako to urobit? Zatial to riesim cez DI, cez konstruktor vkladam vzdy korenovu triedu. To je sice pekne, ale ked bude ta trieda zanorena dajme tomu 10 urovni, tak musim upravovat vsetky "medzi" triedy. Existuje nejaky "krajsi" sposob ako DI?
PHP, Python, C++, ..v javě existuje super, což je právě předek třídy. Spíš by se hodilo přiložit jednoduchý UML diagram, který by znázornil o co se snažíš.
Ide mi len o design pattern. PHP, Python, C++, .. znamena ze mi to mozete vysvetlit v hociktorom z tychto jazykov.Když ti to vysvětlím v pajtnu tak to v C++ zaručeně nenaprogramuješ
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.