Aplicando design pattern Factory - Esse é o jeito correto de se utilizar?

Então minha dúvida é a forma como é aplicado o Factory. Seria correto aplicar de uma forma em que por exemplo eu crio uma interface Carro onde disponibilizo os métodos necessários como andar, freia etc. E crio várias outras class que implementam o mesmo, e acabo criando uma outra class que seria uma espécie de CarroFactory onde ele me retorna o uma interface Carro implementada conforme minha requisição, basicamente esse seria o conceito de Factory, ou é muito mais além disso? Por que a única vantagens que eu consegui ver sobre esse conceito é o fato de por exemplo de uma class que irá compor o carro não precisar se preocupar em como criar o carro e apenas saber utilizar com os métodos públicos que foram disponibilizados.

Alguém tem uma explicação mais clara?

Obrigado desde já!

Olá!

Antes de mais nada, aconselho vc a comprar o livro: Use a cabeça! Padrões de Projetos. Com este livro, todas as suas perguntas serão respondidas.

Agora, respondendo as suas perguntas:

O padrão factory é basicamente isso. Vc cria uma interface e cria classes que a implementem. Depois vc cria a sua classe de fábrica (Factory) que vai se encarregar de criar as instâncias pra vc.

O padrão Factory é muito mais que isso. Veja por esse lado:
Quando vc desenvolve do “jeito tradicional”, vc corre o risco do seu código ser fechado para alterações, ou encher seu código de IFs.

Tivemos um caso assim aqui na empresa:
Foi criado um software para restaurantes e lanchonetes. No início, tinhamos somente pedido nas mesas. Depois foram criados os pedidos com cartão, disk entregas e pedidos on-line. O código ficou um emaranhado de IFs, e muito difícil de alterá-lo.
Sem o padrão Factory, fica difícil do software crescer.

Espero ter ajudado!

Então é isso mesmo, é que eu achei que estava fazendo de forma errada, vou dá um jeito de pegar esse livro!

Obrigado pela ajuda!