Qual é a lógica por trás de ter objetos companheiros no Scala?

Existe um caso em que um objeto companheiro (singleton) para uma classe é necessário? Por que eu iria querer criar uma classe, digamos, Fooe também criar um objeto companheiro para