public interface Product{
}
public class ConcreteProduct implements Product{
}
public abstract class Creator{
protected abstract Product factoryMethod();
}
public class ConcreteCreator extends Creator{
protected Product factoryMethod(){
return new ConcreateProduct();
}
}