2011-08-15 112 views
0

我發現這個代碼的通用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); 
} 

沒有任何理由特別離開與默認訪問修飾符的方法(類/包:是的,子類/世界:沒有)?

P.S:還有一個問題。 ID是否通常在不依賴於RDBMS(XML,平面文件...)的實現中找到?

回答

8

接口的方法是隱式公開的。使用公共修飾符是多餘的和不必要的。

Checkstyle even has a rule檢查是否在接口方法中沒有使用public。

+0

+1,spot on。爲了增加它,接口方法隱式爲'public',而字段爲'public''static'' final' – adarshr

+0

你是對的。我完全忘記了這個事實。 @adarshr:我還沒有遇到接口中的字段。以下主題指出它們作爲常量:http://www.coderanch.com/t/408233/java/java/Instance-variables-interface –

+0

順便說一下,有關有關ID的問題的任何意見? –

相關問題