anchor.diff:    It's a coding pattern in which a class receives its dependencies from external
     sources rather than creating them itself.
     
  -  它是一个编程模式，该模式可以让一个类从外部源中获得它的依赖，而不必自己创建它们。
  +  它是一种编程模式，该模式可以让一个类从外部源中获得它的依赖，而不必亲自创建它们。
   
     Cool! But what about that poor consumer?
     Anyone who wants a `Car` must now
  
positive.code:   the injector will inject `null`. We have a method that logs.
    What can we do to avoid a null reference exception?
    
    准备一个空的日志服务。如果我们在代码中不注册一个，注入器就会注入`null`。
    假设我们有一个带日志的方法，该如何消除空指针错误呢？
  
    We could substitute a *do-nothing* logger stub so that calling methods continue to work:
    
    我们可以用一个 *什么也不做* 的日志服务桩对象来代替，以便调用它的方法可以照常工作：
  // #enddocregion logger-service-6
  +makeExample('dependency-injection/ts/app/providers.component.ts','provider-10-logger')(format='.')
  // #docregion logger-service-7
  
negative.code:   How do we confirm that it actually does flash a warning
    if we can't swap in low-pressure tires during the test?
    
    如果我们的`Car`应该在轮胎气压低的时候闪动一个警示灯该怎么办？
    如果我们没法在测试期间换上一个低气压的轮胎，我们该如何确认它能正确的闪警示灯？
  
    We have no control over the car's hidden dependencies.
    When we can't control the dependencies, a class becomes difficult to test.
    
    我们没法控制这辆车背后隐藏的依赖。
    而如果不能控制这些依赖，类就会变得难以测试。
  
    How can we make `Car` more robust, flexible, and testable?
    
  