abstract class AA
{
static AA getInstance()
{
return new A();
}
}
class A extends AA
{
}
class Client
{
AA aa=AA.getInstance();
aa.method();
}
See also: FactoryMethod, DesignPatterns, AbstractFactoryVsFactoryMethod
External refs: http://ruby-practices.stevej.name/wiki/show/AbstractFactoryViaModuleNew