public class Single {private static Single instance; public static Single getInstance(){ if(instance== null) instance = create(); return instance; } private Single(){} protected Single create() { return new Single();}}class SingeSub extends Single{}
public class Single{ private static Single instance; public static Single getInstance( ){ if(instance==null) instance = create( ); return instance; } protectedSingle( ) { } staticSingle create ( ) { return new Single ( ) ; } } class SingleSub extends Shape{ }