使用getter和setter

时间:2016-11-10 14:41:56

标签: dart

建议在dart getter和setter中使用以定义如下属性:

class Car {
  Engine engine;

  bool get isEngineRunning => engine.isRunning;

  void set isEngineRunning(bool isRunning) {
    engine.isRunning = isRunning;
  }
}

它的优点是什么?

1 个答案:

答案 0 :(得分:3)

仅在需要时才执行,因为除了转发到字段之外,您还要执行一些其他代码。

如果getter和setter仅用于包装字段,则明确不鼓励getter / setter,因为它们只是多余的。

在您的情况下,因为您没有转发到字段_isEngineRunning,所以如果您不想公开Engine engine,那就没问题了。

然而,因为engine是公开的,所以可能只是太多的噪音和混乱,因为同样的事情可以通过两种不同的方式完成。

如果engine是私密的,那么考虑https://en.wikipedia.org/wiki/Law_of_Demeter

会更好