Clean Codeを教えてもらった(2)
全4回予定の2回目。
進め方
- いくつか段落を読む
- 感想やわからなかったことを話す
- 教えてもらったりお話したりする(初めに戻る)
これを1時間繰り返す。
教えてもらったこと・気になったこと
デメテルの法則
「オブジェクトを使用する場合、そのオブジェクトの内部について知るべきではない」
「クラスCのメソッドfは次のオブジェクトのメソッドのみを呼び出すべき」= 知らないものを触っちゃいけない
- Cそのもの
class C { boolean a(int x) { return x > 0 } boolean f(int y) { return a(y) } }
- fで生成されたオブジェクト
class C { C2 f1() { new C2() } int f2(int x, int y) { f1().a(x, y) } } class C2 { int a(int x, int y) { x + y } }
- fの引数で渡されたオブジェクト
class C { int f(C2 c2, int x, int y) { c2.(x, y) } } class C2 { int a(int x, int y) { x + y } }
- Cのインスタンス変数に保持されたオブジェクト
class C { C2 c2 = new C2() int f(int x, int y) { c2.a(x, y) } } class C2 { int a(int x, int y) { x + y } }