建议在dart getter和setter中使用以定义如下属性:
class Car {
Engine engine;
bool get isEngineRunning => engine.isRunning;
void set isEngineRunning(bool isRunning) {
engine.isRunning = isRunning;
}
}
它的优点是什么?
答案 0 :(得分:3)
仅在需要时才执行,因为除了转发到字段之外,您还要执行一些其他代码。
如果getter和setter仅用于包装字段,则明确不鼓励getter / setter,因为它们只是多余的。
在您的情况下,因为您没有转发到字段_isEngineRunning
,所以如果您不想公开Engine engine
,那就没问题了。
然而,因为engine
是公开的,所以可能只是太多的噪音和混乱,因为同样的事情可以通过两种不同的方式完成。
如果engine
是私密的,那么考虑https://en.wikipedia.org/wiki/Law_of_Demeter