Trong RXJava [1] có một enum [2] định nghĩa làJava enum không có trường hợp
public enum JavaFxObservable {
; // no instances
public static void staticMethod() {
// ...
}
}
mục đích là gì kỹ thuật này sử dụng một enum không có trường hợp? Tại sao không sử dụng một lớp tiêu chuẩn?
- [1] https://github.com/ReactiveX/RxJava
- [2] https://github.com/ReactiveX/RxJavaFX/blob/0.x/src/main/java/rx/observables/JavaFxObservable.java
Không chắc lắm, nhưng tôi nghĩ đó có thể là cách sạch để ngăn chặn việc mở rộng hoặc tạo ra cá thể – user902383
"Lớp" này chỉ là một kho chứa các hàm tĩnh (và/hoặc hằng số). Một enum không thể được mở rộng, là một lớp cuối cùng. Cách khác là tạo một lớp cuối cùng hoặc trừu tượng với một hàm tạo riêng. Đó là tiết hơn. BTW enum cũng được sử dụng cho một singleton, với khởi tạo an toàn đồng thời. –
"Tại sao không sử dụng một lớp tiêu chuẩn?" bạn có thể đưa ra một ví dụ về cách một lớp tiêu chuẩn như vậy sẽ tốt hơn/đơn giản hơn không? –