interfaceの定義

まず準備としてCacheシステムのインタフェース定義を行いましょう。Cacheそのものは他システムから読み出しと書き込みが行われます。またCPUがRAMにアクセスする場合にはアドレスが指定されるように、アクセスの際にはキーが指定されます。

public interface Cache {
	public Object read(Object key) throws CacheException;
	public void write(Object key, Object value) throws CacheException;
	public void delete(Object key) throws CacheException;
}

キーも、値もjava.lang.Objectにしました。実際の利用においては、適当なクラスにキャストして使うことになります。read、wrtie、deleteのそれぞれについて例外を投げるようにしています。キャッシュは必ずその本来のデータ(ここではCache Sourceとしている)のコピーになっていますが、指定されたkeyに対応する領域がない場合等に例外がthroughされるようにしています。

一方Cache Source側は次のようなインタフェースを持つことにします。

public interface CacheSource {
	public Object read(Object key) throws CacheSourceException;
	public void write(Object key, Object value) throws CacheSourceException;
	public void delete(Object key) throws CacheSourceException;
};

何だ、Cacheと同じじゃないかと指摘されそうですが、Cacheは本質的にCache Sourceの部分的コピーなので、こうなります。

さて、これで準備はできました。例外も含めソースコードは次の通りです。


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