Как должны отличаться комментарии для методов интерфейса и класса - PullRequest
5 голосов
/ 05 марта 2010

Я столкнулся с этой дилеммой при работе над веб-приложением ASP.net с использованием Web Client Software Factory (WCSF) в C #, и то же самое можно применить к другим платформам и языкам. Моя ситуация такова:

Я определяю интерфейс I View для каждой веб-страницы / пользовательского элемента управления на основе парадигмы WCSF, затем класс страницы реализует интерфейс I View, в основном реализуя каждый из методов, определенных в интерфейсе. Когда я попытался добавить xml-документацию на уровне метода, я обнаружил, что в основном повторяю одно и то же содержимое комментария как для метода интерфейса, так и его аналога в реализующем классе.

Итак, мой вопрос: должна ли существовать существенная разница между содержанием документации по методу интерфейса и методу соответствующего класса? Должны ли они акцентировать внимание на другом аспекте или что-то?

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

Ответы [ 2 ]

8 голосов
/ 05 марта 2010

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

У комментариев XML нет причин упоминать детали реализации.Единственным исключением, возможно, будет упоминание потенциальных побочных эффектов (то есть: этот метод может занять много времени), но я лично сделал бы это в разделе <remarks> комментариев XML-документа.

4 голосов
/ 05 марта 2010

Назовите меня чокнутым, но я бы использовал описательное имя для метода и назвал бы его день (ни одного комментария). Я мог бы добавить комментарии к реализации, если что-то в этом удивительное или почему его неочевидно.

...