Builder Design Pattern
This design pattern can be used to generate complex objects by simple classes
you can build new complex object without loosing control of base class
you can add new fanctionalities to base class after building complex objects from that
in this example I simulated a Car Factory
and its easy to add new cars with new properities