A Static Factory is a static procedure that creates an object, often an AbstractFactory. public abstract class Abstract''''''Factory { public static Abstract''''''Factory createAn''''''Abstract''''''Factory() { // load a specific Abstract''''''Factory somehow... // like dynamically from a configuration file } public abstract Concrete''''''Produce1 createConcrete''''''Produce1(); public abstract Concrete''''''Produce2 createConcrete''''''Produce2(); public abstract Concrete''''''Produce3 createConcrete''''''Produce3(); } The above example is an AbstractFactory that has a StaticFactory built into it. You create your instance by configing it in some way (like a config file or global property name) and calling it like so: Abstract''''''Factory fact = Abstract''''''Factory.createAn''''''Abstract''''''Factory(); Easy as cake.