Design Theories VS Design Patterns