Singleton là một trong số những dạng thức triển khai đơn giản nhất của OOP và được xếp vào nhóm các dạng thức Khởi Tạo. Singleton giúp chúng ta đảm bảo chỉ có 01 object đơn duy nhất của 01 class đặc định được tạo ra trong suốt thời gian phần mềm hoạt động. Class này có cung cấp một phương thức để truy xuất object đơn nguyên này và không cho phép khởi tạo object mới tương tự ở bất kỳ nơi nào khác.
Áp dụng triển khai

- Chúng ta sẽ tạo ra
01 classcó tên làThing. Bên trongclassnày sẽ có hàm khởi tạo được khóaprivatevà một thuộc tínhstaticđể lưu tham chiếu củaobjectduy nhất được tạo ra. Thingcó cung cấp một phương thứcstaticđể chia sẻ tham chiếu tớiobjectduy nhất cho phần code client sử dụng.- Cuối cùng là
mainởPatternDemosẽ sử dụngThingđể hỏi truy xuất tớiobjectduy nhất và hiển thị tin nhắn củaobjectđó.
Bước 1
Tạo 01 class singleton có tên là Thing.
singleton/Thing.java
packagesingleton;publicclassThing{privatestaticfinalThing instance =newThing();privateThing(){// khóa `private` phương thức khởi tạo với `new` từ bên ngoài `class`}publicstaticThinggetInstance(){return instance;}publicvoidshowMessage(){System.out.println("Tin nhắn từ `object` duy nhất của `Thing`!");}}
Bước 2
Truy xuất tới object duy nhất và hiển thị tin nhắn.
PatternDemo.java
importsingleton.Thing;publicclassPatternDemo{publicstaticvoidmain(String[] args){// Lỗi biên dịch vì phương thức khởi tạo không khả dụng// Thing only = new Thing();// Truy xuất object đơn nguyên duy nhấtThing only =Thing.getInstance();// Hiển thị tin nhắn
only.showMessage();}}
Bước 3
Kiểm chứng lại kết quả được in ra ở console.
console
Tin nhắn từ `object` duy nhất của `Thing`!
Nguồn: viblo.asia
