2013-09-16 3 views
0

Я читал принцип DRY. Хотя кажется, что это так просто, но мне трудно понять, как мы на самом деле достигаем его в любом проекте, будь то веб-приложение или Swing? Может быть, несколько примеров дадут мне преимущество и помогут мне в развитии моего процесса мышления. Я попытался найти в Google, но не смог найти ничего подходящего.DRY принцип в java

+0

Те, у кого есть время, чтобы опросить вопрос. Я прошу вас оставить комментарий, пожалуйста. – beinghuman

+2

Принцип достаточно прост ... не повторяйте одну и ту же логику в нескольких местах. Это достигается тем, что не повторяется одна и та же логика в нескольких местах. У вас есть пример того, где у вас возникают проблемы с его применением? (Боковое примечание, основанное на вашем комментарии: голосование анонимно, и пользователи не обязаны комментировать голоса. Лучше не принимать его лично.) – David

+2

@David Я понимаю вашу точку зрения. Но люди могут быть более скромными и, по крайней мере, комментировать этот вопрос слишком абстрактна. Так что, по крайней мере, это может быть улучшено. Вместо этого просто думайте, что этот парень - дебил и голосует за вопрос и бегство. Никто не останавливает никого из всех, кто голосует в любом случае. Вы можете понизить его после предложения. – beinghuman

ответ

16

DRY - ничто, что требует примеров. Если вы копируете и вставляете блоки кода из одного метода, функции или блока кода в другой, то вы нарушаете DRY.

Очень просто, DRY сообщает вам переместить этот код в блок многократного использования: либо в функцию или метод, либо макрос, либо другой механизм, относящийся к вашему языку программирования. Если у вас есть места в вашей кодовой базе, где у вас есть очень похожий код (даже с небольшими вариациями), вы должны искать рефакторинг этого кода, чтобы сделать его СУХОЙ.

«Не повторяйте себя!» == «Не повторяйте один и тот же код повторно»

+0

с помощью многоразового блока, может ли это быть новый класс? Если повторный код нужно удалить, но нет никакого сходства между объектами. Что делать в таком случае? – beinghuman

+0

@ Ники, например? Много ответа можно было бы сделать, если вы не точно, вы могли бы использовать дженерики. – nachokk

+0

Да, единица многократного использования может быть целым классом или абстрактным классом или любым другим компонентом повторного использования. Если вы используете инфраструктуру инъекций Dependency, то, безусловно, у вас будут целые классы. В том, что касается oop, сложность в вашем дизайне начинает зависеть от области общих шаблонов дизайна, описанных в [Gang of 4 book] (http://en.wikipedia.org/wiki/Design_Patterns), а также на многих других языках конкретные книги. Этот сайт также является отличным бесплатным ресурсом: http://www.oodesign.com/ – gview

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