Solid Principles With Design Patterns