クラスの複雑さは深さ(分岐の数)と広さ(協力者の数)があり、両方の性質を持つコードはリファクタリングの対象になる。 両方の性質を持つ「過度に複雑なコード」は深さか広さ、どちらかに寄せてリファクタリングする。(Hunble Objectパターン)