Мышление ОО основано на принципах, лежащих на гораздо более базовом уровне, чем шаблоны проектирования. Шаблоны проектирования как-то модны в наши дни (и были на какое-то время), и они полезны , но это всего лишь еще один слой, который вы можете нанести на более простые вещи, которые вы обязательно должны изучить и мастер , если вы хотите сделать OO правильно. Другими словами: вы можете сделать ОО идеально без шаблонов дизайна. На самом деле, многие из нас сделали OO задолго до того, как появилась фраза «шаблоны проектирования»
.
Теперь есть вещи, без которых вы не можете обойтись. Я предлагаю вам начать с основ. Прочитайте и поймите «Построение объектно-ориентированного программного обеспечения», 2-е издание, Бертран Мейер . Вероятно, это лучшая книга о программировании ОО, как по ширине, так и по глубине. Это если вы заинтересованы в программировании .
Don't know whether you're using command line or in an IDE, but you'll basically need a suppresions file. If you're manually editing the Checkstyle config file, add a new module to it:
<module name="SuppressionFilter">
<property name="file" value="mysuppressions.xml" />
</module>
Your mysuppression.xml
can be something like:
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
"-//Puppy Crawl//DTD Suppressions 1.1//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
<suppress files="TheClassToIgnore\.java" checks="[a-zA-Z0-9]*"/>
</suppressions>
The value for "files
" attribute is basically a regex for your source files, and the value for the "checks
" attribute is regex for what checks to skip ("[a-zA-Z0-9]*
" basically means skip everything). This is the pattern you're looking for I guess?
Если вы используете плагин Checkclipse Eclipse для Checkstyle, вы можете включать или исключать шаблоны файлов (включая каталоги), перейдя на вкладку Checkclipse> Фильтр файлов в свойствах проекта. Например, мой проект содержит каталоги src и test на верхнем уровне. Я хочу, чтобы Checkstyle применялся только к файлам в каталоге src (без test ), поэтому я добавил шаблон включения, который выглядит следующим образом:
src/.+java$
Как видите, он использует Синтаксис в стиле регулярных выражений для спецификации шаблона.
Существует возможность игнорировать защищенные от записи файлы. Или файлы в пакете.
Мне удалось подавить проверки в файле, добавив тег SuppressionCommentFilter в свой файл check.xml:
Сначала я добавил тег FileContentHolder как дочерний тег тега TreeWalker (этот шаг не требуется , начиная с версии 8.1 com.puppycrawl.tools:checkstyle):
<module name="TreeWalker">
...
<module name="FileContentsHolder"/>
...
</module>
Затем я добавил SuppressionCommentFilter в файл check.xml (начиная с версии 8.1 com.puppycrawl.tools:checkstyle - в разделе " TreeWalker "узел):
<module name="SuppressionCommentFilter"/>
В каждый файл, который я хотел подавить проверки, я вставил следующий комментарий в первую строку файла:
// CHECKSTYLE:OFF
Если вы не хотите, чтобы группа файлов в проекте проверялась, вы можете отфильтровать эти файлы, чтобы они не проверялись, создав фильтр файлов
Фильтр файлов использует регулярное выражение для определения того, что файлы для исключения. Регулярное выражение работает с полным именем файла - из-за этого вы также можете исключить целые папки. В этом случае вы можете исключить весь пакет, если хотите.
Если вы немного погуглите - вы, вероятно, сможете найти некоторые файлы Checkstyle Configuration Propertie, в которых есть примеры того, что вы ищете.