Что такое ассоциация? Можете привести пример на PHP?
Интересует именно пример, а не абстрактное определение "класс - школа".
По композиции и агрегации вопросов нет.
В Википедии очень расплывчатое и обобщенное определение. В некоторых книжках пишут, что ассоциация подразделяется на композицию и агрегацию. Но, на UML диаграммах она обозначается своей стрелкой.
Вот пример композиции
class Engine
{
private $power;
public function __construct($power_) { $this->power = $power_; }
public function runEngine(){ echo'Engine is running'; }
public function getEnginePower(){ echo $this->power; }
}
class Car
{
private $model = 'Porshe';
public Engine $engine;
public function __construct()
{
$this->engine = new Engine(360);
}
}
$car = new Car();
$car->engine->runEngine(); // Engine is running
$car->engine->getEnginePower(); // 360
Вот пример агрегации
class Engine
{
private $power;
public function __construct($power_)
{
$this->power = $power_;
}
public function runEngine(){ echo'Engine is running'; }
public function getEnginePower(){ echo $this->power; }
}
class Car
{
private $model = 'Porshe';
public function __construct(Engine $engine)
{
$this->engine = new Engine(360);
}
}
$engine = new Engine(360);
$car = new Car($engine);
$car->engine->runEngine(); // Engine is running
$car->engine->getEnginePower(); // 360
А как будет выглядеть ассоциация?