3章

ここであげられてる内容ははこんな感じ

  • オブジェクトの振る舞いについて
    • Contract=契約について
  • バリューオブジェクトを使ってDollarの値を一般化
  • 三角測量で検証


まず、テストクラス

	public void testEqaulity(){
		assertTrue(new Dollar(5).equals(new Dollar(5)));
	}

JUNITの結果はRed

そこで、明示的にターゲットクラスを変更

	public boolean equals(Object object){
		return true;
	}

JUNITの結果はGreen


次は三角測量で検証するためのテストを書く

	public void testEqaulity(){
		assertTrue(new Dollar(5).equals(new Dollar(5)));
		assertFalse(new Dollar(5).equals(new Dollar(6)));
	}


これをGREENにするためのコードを書く

	public boolean equals(Object object){
		Dollar dollar = (Dollar)object;
		return amount == dollar.amount;
	}

こんな感じ。
この三角測量、ここでも書いてるけど、よっぽどでない限りつかわないそう^^;
これで等価性は終わり。この等価性を呼び水に次のリファクタリングを行う。