Tác dụng private constructor trong OOP?

Chào các anh chị em thấy trong chương trình dạy chỉ dạy public constructor mà không hề nhắc đến private constructor. Vậy các anh chị cho em hỏi lí do tại sao lại dùng private constructor vậy ạ?

Hi Nguyễn Tấn Trung.
Khi bạn không muốn ai khởi tạo đối tượng.

1 Like

Có nhiều tác dụng, nhưng mình thấy tác dụng lớn nhất của private constructor là khi bạn áp dụng Singleton design patterns trong project.
Ví dụ cụ thể, project của bạn cần việc login/logout user, trong trường hợp này bạn cần viết chức năng đó thành 1 services, để biết current user của mình là ai thì chỉ cần gọi đến service đó, và trong 1 ứng dụng thì chỉ có service đó quản lý thông tin này thôi -> sử dụng singleton. Tự class nó sẽ khởi tạo 1 object của nó, không ai được phép tạo thêm instance nào của class này cả :smiley:

3 Likes

Có một vài tác dụng như sau:

  1. Mục đích chính: ngăn không cho khởi tạo instance của class ở khắp nơi và khởi tạo không cần thiết.
  2. Sử dụng Singleton Pattern : để giới hạn số lượng instance của object được tạo ra, như bạn @phuongzzz trả lời ở trên. Bạn có thể xem thêm Singleton ở đây: https://gpcoder.com/4190-huong-dan-java-design-pattern-singleton/
  3. Sử dụng Factory Pattern.
  4. Sử dụng trong các lớp tiện ích (utitlity): các phương thức trong lớp này đều là static, có thể gọi trực tiếp không cần khởi tạo.
  5. Sử dụng trong class chỉ định nghĩa các constant: các biến này cũng là static final nên không cần khởi tạo.
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?