The problem Let's begin learning this design pattern by asking a very fundamental question - Why? Consider a problem in which you are building a video game which has a hero in it. The hero has a weapon and can use it. Initially your game has only a m...