網頁

2020/5/9

Effective Java 3e - Item 25: Limit source files to a single top-level class 筆記

Effective Java 3e - Item 25: Limit source files to a single top-level class 限制一個檔案只有一個top-level class 筆記。

Java雖然允許在一份java檔定義多個top-level class,但實務中請勿這樣做。一份java檔應該只能定義一個top-level class。

例如不應該像下面在Employee.java檔中定義了兩個top-level class EmployeeManager,這樣的做法是錯誤的。例如之後又寫了另一支Manager.java檔且定義了Manager則會編譯錯誤。

Employee.java

// 不要在一個檔案(Employee.java)中定義兩個top-level class。 Don't ever do this!
class Employee {
    public static final NAME = "Empl."
}
class Manager {
    public static final NAME = "Mgr."
}

正確的做法是應該把上面的Manager單獨取出另外定義在Manager.java檔。


若兩個類別有強烈的從屬關係,也就是一個類別是另外一個類別的子類別,則可考慮把子類定義為父類中的靜態成員類別(static member class)。

class Employee {
    public static final NAME = "Empl."

    public static class Manager {
        public static final NAME = "Mgr."
    }
}


沒有留言:

張貼留言