何もしないCacheの実装

さて、最初は何もしないCacheを実装してみます。何もしないというのは、Cacheとしての機能は何も提供せずに、Cacheのsourceに直接アクセスするということです。

public class NoCache implements Cache {
	
	private CacheSource source = null;
	
	public NoCache(CacheSource source) {
		this.source = source;
	}

	public Object read(Object key) throws CacheException {
		try {
			return source.read(key);
		} catch (CacheSourceException e) {
			throw new CacheException(e);
		}
	}

	public void write(Object key, Object value) throws CacheException {
		try {
			source.write(key, value);
		} catch (CacheSourceException e) {
			throw new CacheException(e);
		}
	}

	public void delete(Object key) throws CacheException {
		try {
			source.delete(key);
		} catch (CacheSourceException e) {
			throw new CacheException(e);
		}
	}
}

まずコンストラクタではCacheSourceとなるオブジェクトを指定しています。Cacheには必ずそのオリジナルであるソールがあるはずですので、それを指定します。指定されたsourceは、このインスタンス内部にある変数sourceに保存し、read、write、deleteの各メソッドで使用します。read、write、deleteの各メソッドは、sourceのメンバであるread、write、deleteを呼び出すだけの機能です。

この一見なんの機能もないNoCacheを実装したのは、これから作成するCache機能の比較対象とするためです。色々なCacheで実装した機能が有効かどうかは、このNoCacheとの比較により明らかにすることが出来ます。


汎用Cacheシステムの開発目次  システム開発室  PoisonSoft