Padrões de design: Fábrica vs método de fábrica vs Fábrica abstrata

Eu estava lendo padrões de design de um site

Lá eu li sobre fábrica, método de fábrica e fábrica abstrata, mas eles são tão confusos, não estou claro sobre a definição. De acordo com as definições

Fábrica - Cria objetos sem expor a lógica de instanciação ao cliente e Refere-se ao objeto recém-criado por meio de uma interface comum.É uma versão simplificada do método de fábrica

Factory Method - Define uma interface para criação de objetos, mas permite que subclasses decida qual classe instanciar e Refere-se ao objeto recém-criado através de uma interface comum.

Abstract Factory - Oferece a interface para criar uma família de objetos relacionados, sem especificar explicitamente suas classes.

Eu também procurei os outros encadeamentos stackoverflow em relação ao Abstract Factory vs Factory Method, mas os diagramas UML desenhados lá tornam meu entendimento ainda pior.

Alguém pode me dizer por favor

Como esses três padrões são diferentes uns dos outros?Quando usar qual?E também, se possível, algum exemplo de java relacionado a esses padrões?

questionAnswers(5)

yourAnswerToTheQuestion