Название не имеет 100% полного смысла, как написано. Есть одноэлементные классы, но в действительности нет одноэлементных отношений. Любым отношениям можно назначить множественность на любом конце, поэтому, если вы имеете в виду отношения один к одному, все, что вам нужно сделать, это назначить множественность 1 на обоих концах.
Классы также могут иметь кратности. Вы не часто используете это, за исключением одного случая: синглтоны.
Когда речь идет о A, имеющем или содержащем или ссылающемся на B, в UML существует в основном три уровня плотности.
Агрегация (незаполненный ромбовидный наконечник стрелки) подразумевает, что содержание не является исключительным и что содержащийся объект не разделяет какой-либо аспект своего жизненного цикла с содержащим объектом. В реализации это обычно указатель.
Композиция (заполненный ромбовидный наконечник стрелки) подразумевает, что содержащийся объект разрушается, когда содержащийся объект разрушает. Получение этого к работе обычно означает, что сдерживание является исключительным. В реализации это часто указатель, деструктор которого вызывается в деструкторе содержащего класса (хотя он не может быть создан в конструкторе содержащего класса).
Направленный атрибут ассоциации или члена (то же самое в UML) подразумевает, что содержащийся объект является частью состояния или, если хотите, составной частью содержащего объекта. В реализации это обычно означает, что ссылка не является указателем или если содержащийся объект создан и уничтожен вместе с содержащим объектом.
Агрегирование синглтона совершенно допустимо (даже из нескольких разных классов), потому что агрегация по определению неисключительна.
Композиция немного ненадежна, если только содержащий ее класс также не является синглтоном.
Атрибут / направленная связь, скорее всего, неверна. Если содержащий класс является синглтоном, не имеет смысла делать содержащийся класс также синглтоном, поскольку это подразумевается. И если содержащийся класс используется в качестве члена в двух разных классах, он не может быть одиночным.
В дополнение к вышесказанному, вы также можете добавить столько отношений использования, сколько пожелаете. Это распространено во всех разработках и подразумевает, что класс в конце источника вызывает методы в классе в конце назначения.