観察されるデータの複製
概要
(超意訳): 問題領域(ドメイン)のロジックを含む GUI クラスから、そのロジックを分離する
手順
View (プレゼンテーションクラス) をドメインクラスの Observer にする
ドメインクラスがなければ作る
View からドメインクラスへのリンクがなければ、View のフィールドにメインクラスを置く
コンパイルしてテスト
インベントハンドラに set メソッドの呼び出しを追加、今の値をドメインデータに反映させる
この変更をするときはドメインデータに対して get メソッドを使ってはいけない (ここだけ直接アクセスが必要)
set メソッドが実行されない限り、更新前のデータを引っ張ってきてしまうから
コンパイルしてテスト
ドメインクラス中にアクセサを定義
GUI クラスのアクセサを変更して、ドメインのフィールドへ反映するようにする
Observer の update メソッドを変更して、そのデータをドメインのフィールドから GUI コントロールへコピー
コンパイルしてテスト
#refactoring-chapter8