Tìm hiểu Singleton pattern trong javascript

  1. DESIGN PATTERN là gì? 

Design pattern không phải là cách để giải quyết dứt điểm cho một bài toán cụ thể, mà nó chỉ đem đến cho chúng ta hướng giải quyết, hướng tiếp cận vấn đề một cách dễ dàng hơn. Design pattern mang lại rất nhiều lợi ích cho chúng ta trong quá trình code. Một trong những lợi ích lớn nhất là sẽ giúp code của chúng ta dễ hiểu hơn, dễ tái sử dụng hơn.

2. Singleton pattern là gì?

Singleton pattern là một loại design pattern thuộc loại Creational Design Patterns là nhóm design patterns về khởi tạo đối tượng. Chúng quản lý việc khởi tạo đối tượng phù hợp với ngữ cảnh của bài toán.

Singleton pattern là một pattern đặc biệt trong nhóm creational pattern. Pattern này chỉ cho phép có duy nhất một đối tượng được khởi tạo từ class. Cách hoạt động của nó như sau – Nếu chưa có đối tượng nào được khởi tạo từ class trước đó, nó sẽ khởi tạo đối tượng từ class và trả về đối tượng đó, nhưng nếu đối tượng đã được khởi tạo rồi thì thay vì khởi tạo lần nữa, nó sẽ trả về đối tượng đã được khởi tạo trước đó.


3. Ví dụ về Singleton pattern

Ở ví dụ trên:
- Đối tượng Singleton được thực hiện như một chức năng ẩn danh. Hàm thực thi ngay lập tức bằng cách đặt nó trong dấu ngoặc, theo sau là hai dấu ngoặc bổ sung. Nó được gọi là ẩn danh vì nó không có tên.

- Phương thức getInstance  trả về duy nhất của đối tượng trong khi vẫn duy trì một tham chiếu riêng đến nó mà bên ngoài không thể truy cập được. getInstance kiểm tra xem một phiên bản đã được tạo chưa nếu không, nó sẽ tạo ra một và lưu trữ để tham khảo trong tương lai.

  • Kết qủa trên cho thấy khi một Singleton được gọi lại không phải tạo mới một đối tượng nào nữa thay vào đó nó tham chiếu tới đối tượng trước và trả về đối tượng đó.