Vì tôi đang làm việc trên một máy chủ hoàn toàn không có trạng thái không tồn tại cho người dùng, mọi đối tượng liên quan đến Người dùng mà chúng tôi có đều được triển khai theo mọi yêu cầu.
Do đó, tôi thường thấy mình lười biếng khởi tạo các thuộc tính của các đối tượng có thể không được sử dụng.
protected EventDispatcher dispatcher = new EventDispatcher();
Trở thành ...
protected EventDispatcher<EventMessage> dispatcher;
public EventDispatcher<EventMessage> getEventDispatcher() {
if (dispatcher == null) {
dispatcher = new EventDispatcher<EventMessage>();
}
return dispatcher;
}
Có bất kỳ lý do nào điều này không thể được xây dựng vào Java?
protected lazy EventDispatcher dispatcher = new EventDispatcher();
Như đã đề cập dưới đây trong các bình luận, tôi nhận ra một ngôn ngữ có thể phát triển về mặt lý thuyết để bao gồm hầu hết mọi thứ bạn muốn. Tôi đang tìm kiếm một phép đo thực tế về khả năng. Điều này sẽ xung đột với các tính năng khác? Việc triển khai có đủ đơn giản để làm việc tốt với JVM khi nó tồn tại không? Và thậm chí, nó là một ý tưởng tốt?
synchronized
từ khóa sẽ hoạt động giống như khi nó ở trên phương thức. Tôi tưởng tượng sẽ có một số chỗ ở của các phương pháp xây dựng phức tạp hơn. Trong trường hợp sử dụng cụ thể của tôi , do bản chất của vấn đề, với mỗi yêu cầu là thế giới riêng của nó, đồng bộ hóa là vô nghĩa.