程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 泛型-java 緩存接口設計疑問。

泛型-java 緩存接口設計疑問。

編輯:編程綜合問答
java 緩存接口設計疑問。

我想問,下面兩種設計的區別 。
第一種

 public interface ICache<T> {
    T getItem(Serializable key) ;
    void setItem(Serializable key, T item) ;
}

第二種

 public interface ILocalCache<K, V> {
    public V get(K key) ;
    void setItem(K key, V item) ;
}

第一種跟第二種的區別是key 一個是泛型, 一個是支持序列化。
請問:當分布式緩存時第二種泛型的key是否也持之序列化 ?
越詳細越好 !

最佳回答:


理論上支持,因為泛型指代一切類或接口,當然也可以認為是Serializable。

第一種方式,具體實現可以直接作為序列化接口操作,目標明確。
第二種方式,必須做分歧判斷,如果參數是序列化接口,然後作為序列化接口操作。
如果不是那麼也要能處理。
如果key必須使用序列化,也就是說具體實現只支持Serializable這種類型,那麼推薦第一種。
這時,使用第二種方式沒有任何意義,還容易造成對接口功能的誤解而使用錯誤。
如果是要求對Serializable以外的類型也能處理,那麼只能用第二種方式。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved