10 Design Patterns Explained in 10 Minutes