オブジェクトキャッシュを実装しています:
void cache(String request_type, String request_id, ProcessingStrategy request_strategy) 
{ 
    if (no_state(request_strategy) == true)
       map.put(request_type, request_strategy);
    else
       map.put(request_id, request_strategy); //no chance of keyspace collision
}
ProcessingStrategy lookup(String request_type, String request_id)
{
    ProcessingStrategy request_strategy = map.get(request_type);
    if (request_strategy == null) return map.get(request_id)
    else return request_strategy;
}
interface ProcessingStrategy特定のタイプのすべての要求にわたって実装されるオブジェクトを共有するこのスキームは、具象クラスに格納されている状態がない場合にのみ機能します。
no_stateメソッドを作成するにはどうすればよいですか? 
finalすべてのメンバーフィールドがReflectionを使用しているかどうかを確認するだけで十分だと思います。
for(Field f : request_strategy.getClass().getDeclaredFields())
    if(!Modifier.isFinal(f.getModifiers()))
        return false;
//even if all fields are final;
//how to check that they are not being initialized with differently in the ProcessingStrategy constructor?