Introduction
Objects often need to work together to solve problems. Object interaction lets them share information and actions.
When one object needs to ask another object for information.
When objects need to work together to complete a task.
When you want to organize your program into smaller parts that communicate.
When modeling real-world things that affect each other.