10 Design Patterns Explained In 10 Minutes