Шаблоны проектирования: метод фабрики против фабрики против абстрактной фабрики
Я читал шаблоны дизайна с веб-сайта
Там я читал о Фабрике, Фабричном методе и Абстрактной фабрике, но они настолько запутанные, что у меня нет четкого определения. Согласно определениям
Factory - создает объекты без предоставления клиенту логики создания экземпляров и ссылается на вновь созданный объект через общий интерфейс.Это упрощенная версия Factory Method
Factory Method - определяет интерфейс для создания объектов, но позволяет подклассам решать, какой класс создавать, и ссылается на вновь созданный объект через общий интерфейс.
Абстрактная фабрика - предлагает интерфейс для создания семейства связанных объектов без явного указания их классов.
Я также посмотрел другие потоки stackoverflow, касающиеся абстрактной фабрики и фабричного метода, но UML-диаграммы, нарисованные там, делают мое понимание еще хуже.
Может кто-нибудь, пожалуйста, скажите мне
Чем эти три модели отличаются друг от друга?Когда использовать что?А также, если возможно, какие-либо примеры Java, связанные с этими шаблонами?