visibility of design patterns in the code base promotes understandability. Example: Say we use the observer pattern here and the recipient immediately understands the problem being solved. 7
smell is any characteristic in the source code of a program that possibly indicates a deeper problem. Determining what is and is not a code smell is subjective, and varies by language, developer, and development methodology. — Wikipedia 9