✨Đối tượng bất biến
Trong lập trình hướng đối tượng và hàm, đối tượng bất biến (tiếng Anh: immutable object hay unchangeable object) là một đối tượng mà trạng thái của nó không thể bị thay đổi sau khi được tạo ra. Nó trái ngược với đối tượng biến đổi (mutable object hay changeable object), mà có thể được thay đổi sau khi được tạo ra. Trong vài trường hợp, một đối tượng được xem là bất biến nếu ngay cả khi vài thuộc tính bên trong thay đổi nhưng trạng thái của đối tượng dường như không thay đổi theo cái nhìn từ bên ngoài. Ví dụ, một đối tượng sử dụng sự ghi nhớ để lưu kết quả tính toán nặng có thể vẫn được xem là đối tượng bất biến.
Kiểu chuỗi và các loại đối tượng cụ thể khác thường được biểu diễn dưới dạng đối tượng bất biến để cải thiện khả năng đọc và hiệu quả thời gian chạy trong lập trình hướng đối tượng. Đối tượng bất biến cũng hữu ích vì nó vốn an toàn luồng (thread-safe).
Tham chiếu đến đối tượng
Trong hầu hết các ngôn ngữ hướng đối tượng, đối tượng có thể được tham chiếu đến bằng cách sử dụng tham chiếu. Một số ví dụ về các ngôn ngữ như vậy là Java, C++, C#, VB.NET, và nhiều ngôn ngữ lập trình kịch bản, như Python và Ruby. Trong trường hợp này, trạng thái của một đối tượng có thể thay đổi khi các đối tượng được chia sẻ qua tham chiếu.
Sao chép đối tượng
Nếu một đối tượng được xem là bất biến, nó có thể được sao chép một cách đơn giản bằng cách tạo một bản sao của một tham chiếu tới nó thay vì phải sao chép toàn bộ đối tượng. Bởi vì một tham chiếu (thưởng chỉ có kích thước của một Con trỏ ([[khoa học máy tính)|con trỏ) sẽ nhỏ hơn rất nhiều so với chính đối tượng đó, điều này dẫn đến tiết kiệm bộ nhớ và khả năng tăng tốc độ thực hiện.
Kĩ thuật sao chép tham chiếu sẽ khó hơn nhiều cho đối tượng biến đổi, bởi vì nếu người dùng tham chiếu đến một đối tượng biến đổi và thay đổi nó, những người dùng khác có tham chiếu đến nó cũng sẽ nhìn thấy sự thay đổi đó. Đó không phải là hiệu ứng trong dự tính, sẽ khó khăn để thông báo cho những người dùng khác để họ phản hồi chính xác. Trong trường hợp đó, sao chép phòng thủ toàn bộ đối tượng thay vì chỉ mỗi tham chiếu sẽ là giải pháp dễ dàng hơn mặc dù tốn kém hơn. Mẫu observer pattern là một kĩ thuật thay thế để xử lý thay đổi cho các đối tượng biến đổi.