factory pattern

1. object create delayed into the deived class