2016-11-10 18 views
0

は次のようにプロパティを定義するためにダーツゲッターとセッターで使用することをお勧めです:使用ゲッターとセッター

class Car { 
    Engine engine; 

    bool get isEngineRunning => engine.isRunning; 

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

そして、それの利点は何ですか?

+1

可能性のある重複した[ゲッターとセッターはダートでプロパティを変更するにはどうすればよいです?](http://stackoverflow.com/questions/27683924/how-do- getters-and-setters-change-properties-in-dart) – rinukkusu

答えて

3

フィールドへの転送以外の追加コードを実行する必要がある場合にのみ必要です。

ゲッターとセッターがフィールドをラップするためにのみ使用される場合、ゲッター/セッターは冗長であるため明示的に推奨されません。

フィールドに転送していないため_isEngineRunningですので、Engine engineを公開したくない場合は問題ありません。

しかし、engineは公開されているため、同じことを2つの異なる方法で行うことができるため、あまりにも多くのノイズと混乱することがあります。

engineはそれがより良いhttps://en.wikipedia.org/wiki/Law_of_Demeterを考慮することになるプライベートであるかどう

関連する問題