Associação recursiva(Categoria e SubCategoria) e Ternária(Fabricante, Modelo e Veiculo) duas duvidas

Fala ae !!

Não tenho muita experiência com UML e gostaria de tirar algumas dúvidas.

De acordo com a imagem abaixo a associção entre Categoria e subCategoria é recursiva, não é ?

A implementação seria mais ou menos assim ?

class Categoria{
  int id;
  string nome;
  ArrayList Categoria subCategoria;

  public Categoria(){
     subCategoria = new ArrayList();
  }
  public void adicionarSubCategoria(Categoria categoria){
          subCategoria.Add(categoria);
    }  

}

 Categoria categoriaPrincipal = new Categoria();
 Categoria subCategoria1 = new Categoria();
 Categoria subCategoria3 = new Categoria();
 Categoria subCategoria4 = new Categoria();

 categoriaPrincipal.adicionarSubCategoria(subCategoria1);
 categoriaPrincipal.adicionarSubCategoria(subCategoria2);
 categoriaPrincipal.adicionarSubCategoria(subCategoria3);

Agora eu precisaria relacionar tres classes:

class Fabricante{
List Veiculo;
}

class Modelo{

}

class Veiculo{
Fabricante fabricante;
}


Como é que eu relaciono o modelo do veiculo ?
seria uma Associação Ternária ?

valeu !!!