Как стать автором
Обновить

Комментарии 23

может перенесете в тематический блог? думаю многим будет полезна эта информация.
Обязательно перенесу, когда по количество плюсов посту станет ясно, что он действительно полезен :)
поправьте пожалуйста GRAPS на GRASP
Большое спасибо за информацию. Надо будет почитать книгу…
скоро все прийдут опять к инкаплсуляции, наследовании и полиморфизму )))
а вообщем хорошая информация. Спасибо!
ru.wikipedia.org/wiki/GRASP

Вы переформулировали эту статью и добавили рисунки и примеры, я прав? Я не говорю, что это плохо, я хочу чтобы все понимали, что собственно, вы показываете :).
Не совсем, за основу была взята эта статья с википедии, указанная книга и вот эта статья.
Вот честно, статья на которую ссылаетесь — интересная. Дали бы на не топик-ссылку, все бы были счастливы.
спасибо, кэп, за введение в ооп
Pure Fabrication — это скорее антипаттерн, нежели наоборот.

зы: шаблон полиморфизм — это круто.
поставил комменту плюс. потом перечитал часть статьи про pure fabrication и понял что не прав.
Никакой это не антипаттерн. Конкретный пример использования — DaO (несколько натянутый пример, согласен).
Паттерны Головного Мозга.

Ситуация когда субъект воспринимает рисунок из стрелочек и прямоугольничков, как дарованное с небес откровение о мироустройстве. И пользуясь напильником и топором пытается впихнуть любую ситуацию в рамки одной или нескольких таких картинок, забывая об особенностях предметной области и уже существующей кодовой базы. Плодит тонны вспомогательных классов (слався Адаптер!) и прочего гудрона. Речь бессвязная («бла-бла-бла стратегия бла-бла-бла итератор бла-бла-бла фабрика»).
На хабре уже проскакивала статья по grasp habrahabr.ru/blogs/oop/38323/

Вы потеряли паттерн Creator, который неплохо сочетается с Information Expert…
Так же вы как-то вяло рассказали про Protected Variantions, в самой книге, Ларман рассказывает насколько это сложный принцип и как его сложно реализовать.
Забавно — в комментах пишут критические замечания, но число плюсов растет. Видимо, зачарованный магическим словом, заклинанием «Паттерны!!! ААА!!», многие плюсуют не читая =))
главная задача таких статей — чтобы человек обратил внимание на технологию и поковырял более детальные источники. и с этой задачей такие краткие статьи справляются очень даже хорошо. а чем раньше человек встретит информацию по GoF, GRAPS, SOLID — тем лучше. Поэтому мое мнение — такие статьи, пусть не глубокие, не самые точные, но без явных косяков и задающие вектор думок — очень полезны.
НЛО прилетело и опубликовало эту надпись здесь
По-порядку.
В статье плохо раскрыты Низкая связанность (Low Coupling) и Высокое зацепление (High Cohesion)


Низкая связность и Высокое зацепление базовые понятия, известные любому проектировщику. Более того, Вы должны понимать, что не существует универсальных рецептов счастья, которые позволят спроетировать систему, одновременно удовлетворяющую этим принципам. Помните, проектирование — это всегда компромис.

чем контроллер отличается от «перенаправлятеля», это просто его частный случай?


Да, Вы правильно заметили, контроллер — это частный случай перенаправления. Дело в том, что у этих шалонов разные цели, поэтому они и называются по-разному.

Может ли в системе быть несколько экспертов?


Может :)
НЛО прилетело и опубликовало эту надпись здесь
Это весьма общие слова которые мало дают представления о сущности этих мер/принципов. Я понимаю что «не существует универсальных рецептов счастья», все чего бы хотелось — не лазить на википедию за разъяснениями материала дающегося в статье.

Более того, даже на википедии Вы не найдете подобных разъяснений. Для этого, придется заглянуть в специализированную литературу — GoF, Мартина Флауэра, Крейга Лармана.

Эта статья рассчитана на людей которые знают все что изложено в статье?

Побойтесь бога. Статья рассчитана на людей, для которых ООП не просто сочетание букв, и даже не Объектно-ориентированное программирование. На людей, которые уже успели получить какой-либо опыт проектирования, изобрели несколько велосипедов и т.д.
Дык дайте тогда ответы, а не отговорки. И лучше — в том числе и прямо в статье.
Полезно, спасибо!
Есть подозрение, что контент является практически точной копией контента данного ресурса:
www.citforum.ru/SE/project/pattern/
Мне кажется или присутсвует путаница в Низкая связанность (Low Coupling) и Высокое зацепление (High Cohesion)?

Судя по wiki все наоборот.
Связность, или прочность (англ. cohesion, module strength), — мера силы взаимосвязанности элементов внутри модуля; способ и степень, в которой задачи, выполняемые некоторым программным модулем, связаны друг с другом.

Зацепление, сцепление, сопряжение (англ. coupling) — способ и степень взаимозависимости между программными модулями; сила взаимосвязей между модулями; мера того, насколько взаимозависимы разные подпрограммы или модули

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.