オブジェクトによるデータ値の置き換え
概要
特別な振る舞いを必要とするデータをオブジェクトに置き換える
(ちょっとしたことをするクラスでも尻込みせず作る)
リファクタリングの時期
重複したコード
特性の横恋慕
例えば String address = "東京都葛飾区亀有"; のような住所のデータはいろんなところで「都道府県名」とか「市町村」を取り出すといった処理を必要としたり
手順
置き換えたい値のためのクラスを作成して、その値と同じ型を新しいクラスのフィールドに finalとして与える
新しいクラスに get メソッドと、そのフィールドを引数とするコンストラクタを作成する
コンパイルしてテスト
元のクラスが保持するフィールドの型を新しいクラスに変更する
元のクラスの get メソッドを新しいクラスの get メソッドを呼ぶように委譲する
set メソッドを新しいクラスのインスタンスを作るように変更する
コンパイルしてテスト
#refactoring-chapter8