Câu trả lời là các kiểu bất biến an toàn hơn khỏi lỗi, dễ hiểu hơn và sẵn sàng hơn để thay đổi. Khả năng thay đổikhiến việc hiểu chương trình của bạn đang làmkhó hơn và khó thực thi hợp đồng hơn nhiều.
Vật thể có thể biến đổi là xấu?
Cuối cùng, các đối tượng có thể biến đổi là kẻ giết ngườitrong các tình huống đồng thời. Bất cứ khi nào bạn truy cập một đối tượng có thể thay đổi từ các luồng riêng biệt, bạn phải đối phó với việc khóa. Điều này làm giảm thông lượng và làm cho mã của bạn khó bảo trì hơn đáng kể.
Tại sao trạng thái chia sẻ là xấu?
Trạng thái có thể thay đổi được chia sẻ hoạt động như sau:Nếu hai hoặc nhiều bên có thể thay đổi cùng một dữ liệu (biến, đối tượng, v.v.). Và nếu vòng đời của họ trùng nhau. Sau đó, có nguy cơ các sửa đổi của một bên ngăn cản các bên khác hoạt động chính xác.
Tại sao tính bất biến là điều tốt?
Bên cạnh việc giảm sử dụng bộ nhớ, tính bất biếncho phép bạn tối ưu hóa ứng dụng của mình bằng cách sử dụng bình đẳng giá trị và tham chiếu. Điều này giúp bạn thực sự dễ dàng xem có điều gì đã thay đổi hay không. Ví dụ: sự thay đổi trạng thái trong thành phần phản ứng.
Nhược điểm của tính bất biến là gì?
Nhược điểm thực sự duy nhất của các lớp bất biến làrằng chúng yêu cầu một đối tượng riêng biệt cho mỗi giá trị riêng biệt. Việc tạo các đối tượng này có thể tốn kém, đặc biệt nếu chúng lớn. Ví dụ: giả sử bạn có BigInteger hàng triệu bit và bạn muốn thay đổi bit bậc thấp của nó:BigInteger moby=…; moby=moby.