Hỏi về singleton và socket trong java

Chào m.n,
Mấy bữa nay e có đọc về singleton, có 1 chỗ em thắc mắc đó là làm thế nào để sử dụng cùng 1 instance khi mình chạy nhiều file java?. Ví dụ mỗi file mình tạo 1 instance bằng method getInstance() thì các instance sẽ khác nhau.
Mình cũng đang code 1 bài về socket room, và mình có list các user. Mình muốn chỉ có 1 instance List để các user khác update list mỗi khi có 1 user mới connect, thì có phải cách duy nhất đó là pass List thông qua socket cho từng user k?.
Ai giải đáp giúp mình với ạ.
Cảm ơn rất nhiều

  1. Nhiều file Java nhưng khi chạy chương trình tất cả các class trên các file đều được load vào JVM. Singleton class thì tại tất cả các thời điểm, trong JVM chỉ tồn tại duy nhất một instance của class đó. Do vậy, gọi getInstance của singleton class từ class nào thì vẫn một instance đó do JVM trả về.

  2. Bạn nên dùng một server chat và nhiều chat client. Tại server khai báo ServerSocket để lắng nghe kết nối từ các client Socket. Mỗi khi có một Socket kết nối tới, nó sinh ra một Socket để nói chuyện vs Socket của client, bạn lưu Socket này vào một list nằm trên server, cứ có Socket mới kết nối vào thì add thêm, không phải pass đi đâu hết cả.

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