Design Principles vs. Design Patterns