依赖接口而不是实现