The Provider is a substance which produces the objects of another substance (the Product). The objects may be created by the Provider or they may be taken from the Provider inner cache. The provider hides a strategy of the products creation or caching. An assotiative provider povides the assotiative access to its products.
<typeparam name="TKey">key type</typeparam> <typeparam name="TAbstractProduct">products base type</typeparam>