Разница между паттерном Фабричный метод и Абстрактная фабрика в том, что в Фабричном методе один метод абстрагируется, а в абстрактной фабрике больше одного? Не могу уловить суть. В обоих случаях на основе интерфейсов отдается некий обьект класса
Вроде бы да.
А так думаю мало кто парится с этими определениями. Просто если нужна какая-то штука что-то создающая, то она Factory, и в зависимости от задачи организовывается как надо, количество методов/классов/интерфейсов.
отличный ресурс по паттернам
мне бы по сути вопроса…
этот ресурс всем известен… спс конечно
спасибо, если докопаюсь, отпишусь
Фабричный метод присутствует в классах бизнес-логики.
А абстрактная фабрика - это специальный класс, который занимается только генерацией объектов.
Можно сказать, что абстрактная фабрика - это набор фабричных методов, вынесенных в отдельный класс
В общем, Абстрактная фабрика применяется когда требуется создать семейство интерфейсов, реализация которых должна подменяться совместно.
Если нужно создать не один обьект, а семейство взаимосвязанных обьектов. Если нет целого семейства взаимосвязанных обьектов, то не выйдет и Абстрактная фабрика.
Например, под разные ОС нужна отрисовка различных кнопок, чекбоксов и пр.
Т.е. мы имеем целое семейство обьектов с однотипным поведением для разных условий
Или еще лучше пример. У нас есть несколько типов дверей. Для деревянной нужен столяр, для железной сварщик. Уже видно семейство взаимосвязанных классов. По итогу, нужно предоставить дверь и мастера к ней.
Пример все поясняет