Why Interface

  • writing generic algorithm (泛型编程)
  • hiding implementation detail (隐藏具体实现))
  • providing interception points (提供拦截端点)