In simple words:
A Flyweight factory that for a given, already known, key will always give the same object as response. For new keys will create the instance and return it.
Using the factory:
ISomeFactory<string, object> factory = new FlyweightFactory<string, object>();
var result1...