2010-03-05 6 views
5

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

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

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

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

ответ

8

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

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

+0

Это ответ, который я действительно боялся :), но я думаю, вы правы. Я быстро ношу, повторяя одно и то же содержимое в обоих местах. Copy-n-paste помогла ускорить его, но тот факт, что я делаю это, поражает меня ... – hongliang

+1

@hongliang: Если вы реализуете интерфейс, получите копию GhostDoc - он позволит вам использовать один ключ для заполнения комментариев XML-документа для класса реализации и скопировать комментарии из интерфейса. Очень гладкий: http://submain.com/products/ghostdoc.aspx –

+0

Вау! Это именно то, что я хотел бы. Благодаря! – hongliang

4

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

+6

Я действительно не согласен довольно сильно. Комментирующие методы (с короткими, содержательными комментариями) с использованием комментариев XML-документа очень ценны, особенно если это API, который может использоваться другими людьми ... Нет смысла заменять значимые сообщения в intellisense, которые вы получаете из комментариев xml doc. –

+0

Спасибо. Я согласен с тем, что имя должно быть описательным, что сделает комментарии излишними. Тем не менее, мой собственный опыт говорит мне иногда, есть только то, что вы можете сказать с именем --- если вы не против смехотворно длинных имен с «Когда» и «Если» в нем. – hongliang

+1

Если вызывающий абонент должен быть связан с тем, когда/ifs, как метод, которым его вызов реализован, это обратная связь с проектами, у ваших объектов слишком много связей. –