memo.txt

教えていただいたこと、勉強したことのメモです。

Clean Codeを教えてもらった(2)

全4回予定の2回目。

進め方

  1. いくつか段落を読む
  2. 感想やわからなかったことを話す
  3. 教えてもらったりお話したりする(初めに戻る)

これを1時間繰り返す。

読んだところ

  • 第6章 「デメテルの法則」(P142~145)
  • 第7章「非チェック例外を使用する」(P153、154)

※サンプルコードは本文の意味が分かる程度しか読んでません。

教えてもらったこと・気になったこと

デメテルの法則

「オブジェクトを使用する場合、そのオブジェクトの内部について知るべきではない」
「クラス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
    }
}
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
    }
}