class StrategyStorageWithCacheStrategy implements IResolveDependencyStrategy, IAdditionDependencyStrategy, ICacheable {

    @Override
    public void register(Object key, IResolveDependencyStrategy value)
            throws AdditionDependencyStrategyException {
        try {
            this.dropCacheFor(key);
            this.strategyStorage.put(key, value);
        } catch (DropCacheException e) {
            throw new AdditionDependencyStrategyException(e);
        }
    }

    public  StrategyStorageWithCacheStrategy(final IFunction argToKeyFunction, final IBiFunction findValueByArgumentFunction);

}