Хорошая библиотека Дизайна Контракта для Java? [закрытый]

С помощью Swift:

self.scripSearchView.quickListTbl?.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Top, animated: true)
45
задан Chris Jones 2 July 2009 в 17:38
поделиться

6 ответов

Есть хороший обзор на Wikipedia о проекте по договору , в конце концов, имеется раздел в отношении языков с библиотеками поддержки сторонних , который включает в себя хорошую серию библиотек Java. Большинство из этих библиотек Java основаны на утверждениях Java.

В том случае, если вам нужно только Проверка предварительного условия Существует также легкий Утверждение аргументов Решение , на SourceForge в Валидация аргумента Java Отказ

В зависимости от вашей проблемы, возможно, овальный Framework , для проверки ограничений полей / свойств, является хорошим выбором. Эта рамка позволяет разместить ограничения во всех видах различных формах (аннотации, POJO, XML). Создайте ограничения клиентов через POJO или языки сценариев (JavaScript, Groovy, Beanshell, Ognl, Mvel). И это также партия навещания программирование по контракту .

22
ответ дан 26 November 2019 в 21:30
поделиться

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

Контракт создается как утверждение для метода. Проблема в том, что сам контракт записан в виде строки, поэтому у вас нет поддержки IDE для контрактов или проверки времени компиляции, если контракт все еще работает.

Ссылка на библиотеку

2
ответ дан 26 November 2019 в 21:30
поделиться

Я давно не смотрел на них, но нашел несколько старых ссылок. Один был для JASS .

Другой, который я использовал (и мне понравился), был iContract от Reliable Systems. У него была задача муравья, которую вы выполняли как препроцессор. Однако я не могу найти его с помощью некоторых поисковых запросов в Google, похоже, он исчез. Исходный сайт теперь представляет собой ферму ссылок. Посетите эту ссылку , чтобы узнать о некоторых возможных способах перехода к ней.

2
ответ дан 26 November 2019 в 21:30
поделиться

Я думаю, что многие библиотеки DbC были заменены ключевым словом builtin assert , появившимся с Java 1.4:

  • это встроенная библиотека, никакой другой библиотеки не требуется
  • он работает с наследованием
  • вы можете активировать / деактивировать на основе пакета
  • легко рефакторинг (например, без утверждений в комментариях)
0
ответ дан 26 November 2019 в 21:30
поделиться

Я настоятельно рекомендую вам рассмотреть язык моделирования Java ( JML ).

1
ответ дан 26 November 2019 в 21:30
поделиться

Есть расширения Groovy, которые позволяют проектировать по контракту (tm) в коде Groovy / Java - GContracts . Он использует так называемые закрывающие аннотации для определения инвариантов класса, предварительных и постусловий. Примеры можно найти на вики проекта на github.

Основное преимущество: это всего лишь один jar-файл без внешних зависимостей, и его можно разрешить через репозитории, совместимые с Maven, поскольку он был помещен в центральный репозиторий Maven .

2
ответ дан 26 November 2019 в 21:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: