Công dụng của immutable object và ví dụ thực tế?

Chào mọi người, mình hiện đang học Java và đang vướng ở phần Immutable Class/Object, mình cũng đã dạo vài vòng để tìm hiểu về công dụng của nó và nên sử dụng nó khi nào nhưng số mình toàn gặp các câu trả lời chung chung nên hơi khó hình dung, nên mình mong mọi người có thể hỗ trợ mình vấn đề này ạ :frowning: công dụng, khi nào nên sử dụng và cho mình một số ví dụ thực tế của nó để có thể hình dung ra nó với ạ.
Mình cảm ơn mọi người ạ.

Bạn thử xem qua mấy bài viết này nhé :wink:

3 Likes

Immutable object chỉ phát huy tác dụng khi sử dụng nó trong concurrency hay distributed system. Các object truyền qua giữa các module trong hệ thống không được thay đổi state của nó.

Vì vậy các ứng dụng của nó đa số ở những app và server cần đến responsive hay real-time.

Một vài tham khảo cho bạn:

Reactive Programming:

  • ReactiveX: RxJS, RxSwift, RxJava, RxKotlin
  • Biến thể về store management: Flux, Redux trong React ecosystem
  • Kiến trúc Elm: Elm Architecture, CycleJS

Actor model trong Concurrency:

  • OTP của Erlang
  • Akka Framework của Scala

Mô hình Map Reduce trong Hadoop ecosystem

  • Hadoop MapReduce
  • Spark RDD (Resilient Distributed Datasets)

Blockchain

  • Các transaction (giao dịch) được lưu trong immutable block, các block kết nối liên tiếp với nhau tạo thành blockchain.
7 Likes

Cảm ơn mọi người ạ, xin lỗi đã rep trễ vì em không thường xuyên vào web ạ ^^

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?