Комментарии: Шаблон проектирования Abstract Factory https://dev-lab.info/2013/01/%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-abstract-factory/ Tue, 05 Nov 2013 14:26:45 +0000 hourly 1 https://wordpress.org/?v=5.3.2 Автор: Natalie https://dev-lab.info/2013/01/%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-abstract-factory/#comment-46068 Tue, 05 Nov 2013 14:26:45 +0000 https://dev-lab.info/?p=603#comment-46068 Спасибо за книгу!!! Я не знала, что есть такая. Классическая книга GoF мне не очень нравится. Была от Влиссидеса, кажется, но она мне показалась вообще невнятной.

]]>
Автор: Владимир https://dev-lab.info/2013/01/%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-abstract-factory/#comment-45094 Sat, 02 Nov 2013 12:52:55 +0000 https://dev-lab.info/?p=603#comment-45094 С паттернами у меня выходит так, что по ходу работы иногда получается красивое решение. И вот в этот момент, понимаешь, что по-любому это кто-то придумал до тебя. Открываешь книжки, и читаешь все недостатки своего решения, способы его улучшить и прочее в описании какого-нибудь паттерна :).

Я тут по совместительству веду в ВУЗе технологию программирования, и по программе я должен бы дать студентам паттерны. Но я ведь знаю, что без обширных и хороших примеров они не запомнятся. По абстрактной фабрике был такой момент... после того, как студентам на лекциях рассказывали этот паттерн, у них появлялось невероятное желание применять его всюду и они в свои примитивные лабораторные впиливали по 2-5 фабрик (там, где они вообще не нужны были).

Мораль такова, что у некоторых шаблонов действительно очень красивое и элегантное решение, у многих появляется желание использовать эти шаблоны, но надо четко указывать какие проблемы решает эти паттерны ("элегантное решение чего?"). Я стараюсь делать на этом акцент и на занятиях со студентами и в своих статьях.

Natalie >> Я иногда разбираю паттерны просто для развития мозгов
Не так давно, нашел книжку очень интересную:
Джейсон Мак-Колм Смит «Элементарные шаблоны проектирования» : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2013. — 304 с.
Очень рекомендую для развития мозгов. В плане паттернов там есть обширный матан.

]]>
Автор: Natalie https://dev-lab.info/2013/01/%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-abstract-factory/#comment-45081 Sat, 02 Nov 2013 11:34:29 +0000 https://dev-lab.info/?p=603#comment-45081 Владимир, абсолютна согласна с вашей фразой "мне это не надо" :) Действительно, большинству это не нужно. Особенно, web-разработчикам. Другая специфика работы.
Я иногда разбираю паттерны просто для развития мозгов. Решишь такую задачку и начинаешь чувствовать просветление :) Но обычно до паттернов не доходит - времени надо много на разбор, а его нет - есть более приоритетные задачи.

]]>
Автор: Владимир https://dev-lab.info/2013/01/%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-abstract-factory/#comment-45079 Sat, 02 Nov 2013 11:28:17 +0000 https://dev-lab.info/?p=603#comment-45079 Никогда не использовал абстрактную фабрику, и представить ее применение вообще не особо мог - если не могу представить зачем она мне может потребоваться, то ИМХО и думать об таком шаблоне не надо :). Примеры типа того, что был у Вас с виджетами я, конечно, себе представлял, но мне это не надо :)
У Гаммы в книге описан похожий пример и еще пример с реализацией похожих компонентов для разных архитектур - но все это требуется небольшому числу программистов и очень редко. Кроме того, если бы мне пришлось реализовывать один и тот же компонент по-разному для различных архитектур - я бы однозначно и запилил бы что-то типа фабрики, а как иначе?

У Вас очень понравился пример с БД, я, признаться, в таком направлении не думал. Кажется, можно найти еще какие-то аналогии. Я подумаю, спасибо Вам )

]]>