A nice discussion comparing and contrasting the provider pattern with the strategy pattern and the adapter pattern. I've used the provider pattern heavily, since a) Microsoft has pushed it and b) I am a Microsoft guy. But it's nice to see how this contrasts with some similar patterns. One of the interesting things I observed is that there is some crossover between the strategy pattern and the factory pattern. Probably the main difference is that the strategy depends on the implementation of an interface (and, presumably, the implemented classes may be instantiated directly on a public constructor) while the factory pattern has its members defined by an abstract base class, and the instantiation of the object comes from a static factory method. What makes them similar is that they both project a consistent API that a developer can predict, while applying potentially much different rules to the work they execute.