Прокомментировать интерфейс, реализацию или обоих?

Используя java-8, вы можете фильтровать список, результатом будет List<HomeScreenChatsHelper>, который имеет HomeScreenChatsHelper с тем же id

List<HomeScreenChatsHelper> mChats = new ArrayList<>();

//filter
List<HomeScreenChatsHelper> result = mChats.stream()
                                     .filter(str->!str.getId().equals(Id)).
                                      .collect(Collectors.toList());

Или с помощью Iterator

// Iterator.remove() 
    Iterator itr = mChats.iterator(); 
    while (itr.hasNext()) 
    { 
        HomeScreenChatsHelper x = itr.next(); 
        if (x.getId().equals(Id))  }
            itr.remove(); 
           }
    } 
118
задан ng5000 17 April 2009 в 09:19
поделиться

6 ответов

Как правило, я использую тот же принцип СУХОГО (не повторяй себя), что и с кодом:

  • на интерфейсе, документирование интерфейса
  • на реализации, документирование особенностей реализации

специфических для Java : при документировании реализации используйте тег {@inheritDoc} для «включения» javadocs из интерфейса.

Для дополнительная информация:

92
ответ дан 24 November 2019 в 01:59
поделиться

Если вы используете надстройку GhostDoc , она обновляет реализацию с комментарием из интерфейса, когда Вы щелкаете правой кнопкой мыши и выбираете «Document This» в методе.

7
ответ дан 24 November 2019 в 01:59
поделиться

Для C # это зависит от IMO: если вы используете явные реализации интерфейса, то я не буду документировать реализацию.

Однако, если вы реализуете интерфейс напрямую и выставляете члены интерфейса с вашим объектом, тогда эти методы должны быть тоже задокументировано.

Как сказал Нат, вы можете использовать GhostDoc для автоматической вставки документации интерфейса в реализацию. Я сопоставил документ этой командой с сочетанием клавиш Ctrl + Shift + D и одним из клавиш, которые я почти автоматически нажимаю. Я считаю, что ReSharper также имеет возможность вставить документацию интерфейса, когда он реализует методы для вас.

5
ответ дан 24 November 2019 в 01:59
поделиться

Мы просто комментируем интерфейс, комментарии так просто не синхронизируются ни с производным, ни с базовым классом / интерфейсом это приятно иметь его в одном месте.

Хотя, похоже, @Nath может предложить автоматизированный инструмент для документирования, который поможет сохранить все вместе (звучит круто, если вы используете это). Здесь, в WhereIWorkAndYouDontCare, комментарии относятся к dev, поэтому предпочтительным является одно место в коде

4
ответ дан 24 November 2019 в 01:59
поделиться

Только интерфейс. Комментирование обоих - это дублирование, и, вероятно, два набора комментариев со временем будут не синхронизированы, если код изменится. Прокомментируйте реализацию с помощью "Implements MyInterface" ... Такие вещи, как Doxygen, будут генерировать документы, которые в любом случае будут включать производные документы в документы для реализации (если вы их правильно настроили).

3
ответ дан 24 November 2019 в 01:59
поделиться

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

Реализации просто, если они соответствуют интерфейсу, нет необходимости документировать их отдельно.

2
ответ дан 24 November 2019 в 01:59
поделиться
Другие вопросы по тегам:

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