We can use Decorator design pattern to add new features to an
existing object. With a Decorator we work on same object and
return the same object with more features. But the structure of the
object remains same since all the decorated versions of object
implement same interface.