Любой знакомый с книгой о паттернах, написанной Бандой Четырёх знает, что паттерны, описанные в книге, представляют собой элегантные решения, проверенные временем. К сожалению, выделение этих паттернов из преемственного кода невозможно, потому что никто не знает, что они предложили эти паттерны, когда писали преемственный код. Поэтому следующий текст представляет из себя паттерны для широких масс. Представленные в этом документе паттерны представляют собой решения, пережившие многих. Наслаждайтесь чтением, но не используйте на практике!
Рубрика «паттерны проектирования» - 8
Недуги проект-дезориентированного ПО
2012-05-28 в 15:34, admin, рубрики: архитектура, ненормальное программирование, паттерны, паттерны проектированияУсовершенствовании паттерна Flyweight в биовычислениях
2012-03-15 в 14:19, admin, рубрики: биоинформатика, паттерны проектирования, Проектирование и рефакторинг, Совершенный код, метки: биоинформатика, паттерны проектированияПредыстория
Сразу извиняюсь за сложность, но сложна как сама ситуация для применения этого, так и способ решения, но получается в результате красиво и эффективно :)
Началось с того, что описал одну проблемку о проблемах ООП. Потом случайно благодаря разговорам тут начал обдумывать паттерны проектирования. И в связи с темой «полное копирование объекта» вышел на паттерн Flyweight. Кто не знает — прошу вначале читайте о нем в Приемы объектно-ориентированного проектирования. Паттерны проектирования (Не в вики, а в оригинале).
Основная идея там такова:
Паттерн Flyweight описывает, как совместно разделять очень мелкие объекты без чрезмерно высоких издержек. Каждый объект-приспособленец имеет две части: внутреннее и внешнее состояния. Внутреннее состояние хранится (разделяется) в приспособленце и состоит из информации, не зависящей от его контекста. Внешнее состояние хранится или вычисляется объектами-клиентами и передается приспособленцу при вызове его методов.
Задача
Мы рассмотрим как это улучшить на конкретном примере. О биовычислениях буду говорить очень мало — но пример будет построен на этом. Суть биовычислений попытаюсь полностью вытравить, оставив только схему.
Усовершенствование паттерна Flyweight в биовычислениях
2012-03-15 в 14:19, admin, рубрики: биоинформатика, паттерны проектирования, Проектирование и рефакторинг, Совершенный код, метки: биоинформатика, паттерны проектированияПредыстория
Сразу извиняюсь за сложность, но сложна как сама ситуация для применения этого, так и способ решения, но получается в результате красиво и эффективно :)
Началось с того, что описал одну проблемку о проблемах ООП. Потом случайно благодаря разговорам тут начал обдумывать паттерны проектирования. И в связи с темой «полное копирование объекта» вышел на паттерн Flyweight. Кто не знает — прошу вначале читайте о нем в Приемы объектно-ориентированного проектирования. Паттерны проектирования (Не в вики, а в оригинале).
Основная идея там такова:
Паттерн Flyweight описывает, как совместно разделять очень мелкие объекты без чрезмерно высоких издержек. Каждый объект-приспособленец имеет две части: внутреннее и внешнее состояния. Внутреннее состояние хранится (разделяется) в приспособленце и состоит из информации, не зависящей от его контекста. Внешнее состояние хранится или вычисляется объектами-клиентами и передается приспособленцу при вызове его методов.
Задача
Мы рассмотрим как это улучшить на конкретном примере. О биовычислениях буду говорить очень мало — но пример будет построен на этом. Суть биовычислений попытаюсь полностью вытравить, оставив только схему.
P.S. Если кому то интересна проблематика самих биовычислений по задаче сворачивания РНК/белков — делайте заказ напишу тогда отдельную статью.
Правильное использование паттерна «Мост» (Мост с двухсторонним движением) или MVC->«Бизнес-сущность — Визуализация — Контроллер»
2012-03-15 в 11:40, admin, рубрики: bridge, mvc, паттерны проектирования, Проектирование и рефакторинг, Совершенный код, метки: bridge, mvc, паттерны проектированияПредыстория
Статья Неверное использование паттерна проектирования «Мост» / «Bridge» как то так получилось разделила аудиторию на двое. Далее я подумал, сказав А не сказать Б, будет не правильно. Нет я не отказываюсь от своих слов, но я нашел где и как я использовал паттерн «Мост». Т.к. его еще и неверно понимают, кажется альтернативное название «Описатель/тело» — меньше вводит в заблуждение.
Так где же? Оказалось в моем аналоге использования концепции MVC (Модель/Представление/Контроллер).
Поэтому вначале ознакомлю со своей вариацией «Бизнес-сущность — Визуализация — Контроллер». Я уже ее писал, но думаю мало кто с этим знаком. А затем посмотрим где же там «Правильный мост».
P.S. Мне тут выдали кредит доверия, и я обязался написать еще одну статью о усовершенствовании паттерна Flyweight — помню, пишу, надеюсь смогу опубликовать :)
Проектирование и рефакторинг / Шаблон Bridge дополнительные штрихи
2012-02-26 в 20:33, admin, рубрики: bridge, паттерны проектирования, проектирование, проектирование по, шаблоны проектирования, метки: bridge, паттерны проектирования, проектирование, проектирование по, шаблоны проектирования Обсуждение многострадального шаблона Bridge на хабре, выявило много интересных мнений и заблуждений. Попробуем разобраться, реанимировать данный шаблон в глазах тех кто борется с формулировками оригинального каталога GoF, а интересующимся темой шаблонов показать несколько дополнительных штрихов.
Кратко о шаблонах GoF (Gang of Four – «банда четырех»)
«Мы не наделены даром предвидения, поэтому те, кто приписывает «банде четырех» экстраординарные способности, будут поражены хаотичностью нашего процесса разработки.»
Джон Влиссидес
«Когда мы писали нашу книгу, мы действительно пытались кое-чтоЧитать полностью »
Программирование / [Из песочницы] Паттерн Bridge, как он есть
2012-02-20 в 13:19, admin, рубрики: bridge, design patterns, паттерны проектирования, метки: bridge, design patterns, паттерны проектированияПрочитав статью товарища tac, посвященную злополучному паттерну проектирования Bridge (от англ. — «Мост»), мне стало очень обидно и за Банду Четырех, чьи идеи были самым бессовестным образом осрамлены, и за сам паттерн, который был ужаснейшим образом дискредитирован в глазах менее опытных читателей. Не в силах больше смотреть на пылкие дебаты, разгорающиеся в комментариях, я решил спасти репутацию бедного паттерна, виновного лишь в том, что вот уже в который раз, он был неправильно истолкован.
Если вам еще не надоели статьиЧитать полностью »
Совершенный код / [Из песочницы] Неверное использование паттерна проектирования «Мост» / «Bridge»
2012-02-16 в 17:45, admin, рубрики: агрегация, наследование, паттерны проектирования, метки: агрегация, наследование, паттерны проектирования Предистория
Я прочитал эту статью о паттерне проектирования «Мост». Увы, его очень часто используют не верно. Более того, я затем открыл книгу Приемы объектно-ориентированного проектирования. Паттерны проектирования. Оказалось и там авторы очень смутно декларируют причины его наличия и когда его использовать. Поэтому ниже я вам сообщу как и зачем подобное использовать.Что такое паттерн проектирования «Мост» на самом деле
Если знать объектно-ориентированное программирование, то со всей ответственностью заявляю, что знать о паттернах совершенно не обязательно. Паттерны это лишь частное, и не всегда самое удачное, решениеЧитать полностью »