Что такое ассоциация?

Что такое ассоциация? Можете привести пример на 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


А как будет выглядеть ассоциация?
  • Вопрос задан
  • 173 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы