オブジェクト指向エクササイズ
「ThoughtWorks アンソロジー」の5章オブジェクト指向エクササイズより、 以下の9つの制約を守ってリファクタリングを行います。
if for while
等でブロック{}
を使う場合ネストしてはいけません。
else
は使用してはいけません。
プリミティブ(int
, char
等)型をオブジェクトでラップする。
また、String
とAutoBoxing用のラッパークラス(Integer
等)も含みます。
基本的にはクラスの外側(メソッドの引数、戻り値)にプリミティブ型が現れない様にします。
boolean
は除く。
※テストのみで使用するメソッドの場合は例外とします。
メソッド呼び出しを連結してはいけません。
50行を超えるクラス、10ファイルを超えるパケッージを作ってはいけません。 ただし、コメント、空白文字(スペース、タブ)のみの行はカウントしなくてOK。
インスタンス変数を3つ以上定義してはいけません。
コレクション(List
, Map
等)を使用する場合はそれのみをインスタンス変数として下さい。
(他のインスタンス変数を定義してはいけません。)
インスタンス変数を返したり、インスタンス変数に直接設定するようなメソッドは定義してはいけません。