Copy code to practice 4, add observer sequence diagram