Why Design Patterns
1. In order to expand, such as:
2. In order to encapsulation class: A only visible to b. And c is a need for a method or an interface. The special, A callback is required to achieve c. no way. You can only b Agent again. Example: From the example of json filled the city's data, we need to report on progress.