Adapter Pattern, Command Pattern, Factory Pattern, Memento Pattern