Utilizando os design patterns Bridge, Decorator, Abstract Factory, Adapter, Composite, Factory Method