Я не уверен, как представить этот сценарий в диаграмме классов UML.
Пример того, что я имею в виду:
Типичный класс Mysql, который обрабатывает соединение с БД, но делегирует конструкцию и выполнение оператора другому классу с именем MysqlStatement, так что у класса Mysql есть один метод с именем Mysql :: prepare (), который возвращает класс Mysqlstatement (не содержащий его), например так:
class Mysql extends DB_Connection {
public function connect($user, $pass, $dbhost, $dbname)
{
$this->dbh = mysql_connect($dbhost, $user, $pass);
// ...
}
/**
* Connects to the DB, then creates and returns the statement object
* @param string $query
* @return MysqlStatement
*/
public function prepare($query)
{
if (! $this->dbh) $this->connect();
return new MysqlStatement($this->dbh, $query);
}
}
Обратите внимание, что, насколько я знаю, нет композиции / агрегации / ассоциации, потому что ни один класс не содержит другой. Поэтому я не уверен, как представить эти отношения. Мне нужно сделать это, чтобы привести все в порядок и получить представление о системе.
Вы можете представить отношение в UML, используя однонаправленное использование (создание экземпляра).
В зависимости от вашего инструментария графика может быть нарисована немного по-разному, но вот очень простой пример, показывающий, что вы хотите.
Увидеть эта ссылка для описания этого типа отношений.
Для справки вот что может показать диаграмма последовательности (детали ограничены, очевидно)
Других решений пока нет …