2011-10-27 1 views
2

Есть много шаблонов дизайна и довольно очевидно, что сами шаблоны не являются серебряными пулями. Однако, по вашему опыту, были ли какие-либо шаблоны, которые последовательно приводили к дальнейшим проблемам? Наверное, я спрашиваю, есть ли определенные шаблоны, которые через некоторое время превращаются из решения в проблему сами по себе?Есть ли плохие образцы дизайна?

В настоящее время я имею дело с классом Singleton, который относится к этой категории, и я хотел бы спросить всех, есть ли другие подобные шаблоны, с которыми они столкнулись.

+1

Множество людей поставили бы Singleton в этой категории. –

+0

Я сам думал о Синглтоне, когда задавал вопрос. Я имею дело с одноэлементным классом, который теперь является проблемой, потому что это синглтон. Вот в чем причина - обратиться к коллективной базе знаний и увидеть, что были другие подобные модели, которые приходили на ум. – Carl

+0

Я вижу, вопрос уже ответил. Но вот ссылка на некоторые анти-шаблоны для Java, но, вероятно, может применяться и к другим языкам. http://mindprod.com/jgloss/unmain.html – Lionel

ответ

6

Да, это называется antipatterns. Единственный, с чем я когда-либо сталкивался (что я знаю из головы), это waterfall model. Вместо того, чтобы пытаться их описать, я настоятельно рекомендую прочитать первую ссылку. У этого есть много проницательной информации!

Чтобы добавить немного юмора, вы упомянули «не серебряные пули» ... No Silver Bullet :)

+0

wrt «Нет серебряной пули» - я бы сказал, что ряд проектов как «случайная сложность» часто вводится ограничениями на языке, но ... +1 для упоминание * antipatterns *, которое полностью отвечает [и закрывает] вопрос. –

+1

Спасибо! +1 для юмора, что действительно актуально :) – Carl

2

Как заявил Остин в своем ответе, если Ваше желание знать, что, чтобы избежать его лучше читать на анти -patterns - но я бы добавил «кодовые запахи».

Шаблоны проектирования полезны только тогда, когда применяются для решения проблемы, которую они решаются для решения. Я часто перечитываю, что технология не решает проблемы - люди делают, а затем технология используется для реализации решения. Каждый шаблон проектирования является решением конкретной проблемы, а при реализации решает эту проблему. Когда неправильное решение реализовано, проблема не решена; и обычно становится намного хуже.

Вы, как и многие другие перед вами, подверглись воздействию Синглтона, используемого для решения проблемы, которую оно не предназначалось для решения. Лучше всего отступить, взглянуть на него снова и определить проблему (или проблемы), которые необходимо решить и реализовать шаблон дизайна или шаблоны, которые их решают.

Одним словом, хорошо распознать анти-шаблоны или «запахи кода», но чтобы избежать проблем с шаблонами дизайна, лучше всего понять, в чем проблема, которую они должны были решить, и применять их только к справиться с этой конкретной проблемой.

Смежные вопросы