自己カプセル化フィールド【リファクタリング】
状況
- フィールドに直接アクセスしている
_a = _a * 2
対処
- そのフィールドに対するgetおよびsetメソッドを定義し、それらのメソッドを使用する
メリット
サブクラスがその情報の取り出しに際し、メソッドによってオーバーライドできる
遅延初期化を試みることができる
手順
対象のフィールドに対するgetおよびsetメソッドを定義する
フィールドへの参照、設定を上記メソッドに置き換える
フィールドをprivateにする
コンパイルしてテストする
func() { setA(getA() * 2) } var _a int getA() { return _a } setA(i int) { _a = i }
楽天ブックス: リファクタリング新装版 - 既存のコードを安全に改善する - マーチン・ファウラー - 9784274050190 : 本