TDD Boot Campの課題の再挑戦です。 仕様変更その1(事後の容量変更)まで対応。ここまでは大して複雑にはならないのは、前回の通り。スナップショットとして。 ポイントは、キー管理を内部クラス"KeyHolder"に委譲していることか。put時の容量超過と、capacityを減らしたときのキャッシュ整理が一元化できている。ただ、「xxxer」的なクラスは、あまりいい匂いはしない。 テストコードは、アサーションを何個も重ねないよう気をつけてみた。1メソッド1アサートを厳守するのは難しいかもしれないけど、基本的には採用すべきな気はする。あとは、ヘルパメソッド"fillTarget"の記述を簡略化した。「テスト対象は主にキーであり、値はそれほど重要ではない」。 途中までは、前回と同様に、キー順序をテストするメソッドを入れていた。が、最終的に、KeyHolder#oldest()はテストコー

