Зачем использовать доступ по умолчанию для методов в общем интерфейсе DAO?

Я нашел этот код для универсального интерфейса DAO при просмотре:

public interface GenericDAO<T, ID extends Serializable> {

    Class<T> getEntityClass();

    T findById(final ID id);

    List<T> findAll();
    List<T> findByExample(final T exampleInstance);

    List<T> findByNamedQuery(
        final String queryName,
        Object... params
    );

    List<T> findByNamedQueryAndNamedParams(
        final String queryName,
        final Map<String, ?extends Object> params
    );

    int countAll();

    int countByExample(final T exampleInstance);

    T save(final T entity);

    boolean delete(final T entity);
}

Есть ли какая-либо причина, в частности, оставлять методы с модификатором доступа по умолчанию (класс / пакет: да, подкласс / мир: нет)?

PS: дополнительный вопрос. Обычно идентификаторы находятся в реализациях, которые не зависят от СУБД (XML, простой файл...)?

1 ответ

Решение

Методы интерфейса неявно общедоступны. Использование модификатора public, таким образом, является излишним и ненужным.

Checkstyle даже имеет правило, чтобы проверить, что public не используется в интерфейсных методах.

Другие вопросы по тегам