Tôi hiện đang đọc lại "Java hiệu quả" trong khi làm việc tại một cửa hàng sử dụng nhiều công cụ Spring Dependency Injection. Khi đọc cuốn sách của Bloch, người ta không thể không nhận được sự nhấn mạnh mà anh ta đặt vào bất biến trong các lớp học (anh ta nói nhiều lần rằng các lớp học nên càng không thay đổi càng tốt). Tôi không thể không cảm thấy điều này trong cuộc xung đột trực tiếp với sự tin cậy rằng Spring Dependency Injection (và hầu hết các công cụ DI cho thực tế đó) có trên tiêu chuẩn javabeans. Đọc 'Mùa xuân trong Hành động' các chương trên DI có vẻ như họ sẽ làm cho Bloch rạn nứt với các lớp có thể thay đổi của họ bao gồm các đối tượng được phác họa bên ngoài tầm nhìn của bạn.Tính đột biến và mùa xuân
Có phải ý tưởng của Bloch quá mới mẻ đối với mùa xuân không? Mô hình lò xo có bị vỡ không? Lập trường của Bloch về bất biến chỉ áp dụng cho việc viết mã thư viện? Khi viết mã Spring tôi nên viết các đối tượng linh hoạt với nhiều getters và setters hoặc load mọi thứ trong constructor?
Bloch không nói "không bao giờ làm mọi thứ có thể thay đổi được", anh nói "không làm cho chúng dễ biến đổi hơn mức cần thiết". Nếu khuôn khổ của bạn đòi hỏi mức độ đột biến chắc chắn, thì đó là những gì bạn phải sống. – skaffman
Cũng trong hạng mục liên quan đến khả năng biến đổi, các nhà xây dựng lồng ghép, và mô hình xây dựng ông sắp xếp các tiêu chuẩn javabeans (đề cập đến nó như là lỗi thời), nhưng tiêu chuẩn đó là cơ sở của Spring không có nghĩa là mùa xuân đã lỗi thời? – nsfyn55
mùa xuân không phụ thuộc vào tiêu chuẩn javabeans. – Bozho