Design Patterns Examples - Based on GoF