Archívum - Jan 13, 2012
PHP baráti osztályok vagy ilyesmi
Sziasztok, az a baj, hogy pontosan nem is tudom, hogy mit szeretnék, emiatt a Google egyelőre nem barátom... :(
Adott egy nagy osztály, benne több private tagfüggvénnyel. Egy átalakítás során viszont ezt szét kellene szedni több osztállyá. A bővíthetőség miatt néhány funkciót le kell választani. (az átalakítás után azt szeretném, hogy egyes funkciókat a Stratégia tervezési minta alapján külön osztályok felügyeljék)
A problémám, az új osztályok ne legyenek az eredeti osztály gyermekei, de néhány private függvényre mégis szükség lenne. Jelenleg ezt csak úgy tudtam orvosolni, hogy minden 1. átadom az eredeti objektumot, ez mondjuk nem is baj, 2. az összes private-ből public-ot csináltam, na ez nem tetszik.Java-ban van valami olyasmi, hogy egyik osztályban hozom létre a másik osztályt és akkor ott a privát változókat elérem, C++-ben van valami baráti osztály, PHP-ben van valami ilyesmi?
Remélem nem nagyon kusza amit írtam. Merre induljak el keresgélni?
■ Adott egy nagy osztály, benne több private tagfüggvénnyel. Egy átalakítás során viszont ezt szét kellene szedni több osztállyá. A bővíthetőség miatt néhány funkciót le kell választani. (az átalakítás után azt szeretném, hogy egyes funkciókat a Stratégia tervezési minta alapján külön osztályok felügyeljék)
A problémám, az új osztályok ne legyenek az eredeti osztály gyermekei, de néhány private függvényre mégis szükség lenne. Jelenleg ezt csak úgy tudtam orvosolni, hogy minden 1. átadom az eredeti objektumot, ez mondjuk nem is baj, 2. az összes private-ből public-ot csináltam, na ez nem tetszik.
class MyClass {
public function __construct () {
$a = new StrategyA($this);
$a->foo();
}
private function foo () {
return 'foo';
}
}
class StrategyA {
private $owner;
public function __construct(MyClass $owner) {
$this->owner = $owner;
}
public function foo () {
echo $this->owner->foo();
}
}
new MyClass();
Remélem nem nagyon kusza amit írtam. Merre induljak el keresgélni?