Tôi đang thực hành sử dụng đối tượng bất biến trong C ++. Mục tiêu cá nhân của tôi là đại diện cho biểu đồ đối tượng chung (trong heap) với chuỗi các biểu đồ bất biến.
Xây dựng đồ thị đa phiên bản không khó lắm. Vấn đề là hiệu suất. Phiên bản Brute-force cần bản sao đầy đủ của biểu đồ và điều này không được chấp nhận.
Tôi đã cố gắng để chia sẻ các nút không thay đổi. Nhưng trong trường hợp này, tôi gặp một vấn đề mới; người giới thiệu. Tham chiếu đến đối tượng khác phải được cập nhật trong toàn bộ biểu đồ. Điều này cần truy cập vào tất cả các nút cho mỗi lần tôi lấy được một phiên bản đồ thị mới. Và điều này làm thay đổi các nút với các tham chiếu, vì vậy chúng cũng nên được dẫn xuất (bằng cách sao chép). Hiệu suất sẽ không tốt hơn nhiều so với sao chép vũ phu.
Theo như tôi có thể tưởng tượng, không có cách nào thực sự hiệu quả để biểu diễn sự đột biến của đồ thị đối tượng với các trạng thái bất biến. Vì vậy, tôi đang yêu cầu một số ý tưởng về điều này.
Có thể biểu diễn đột biến của đồ thị đối tượng một cách hiệu quả với trạng thái bất biến?