Giới thiệu về Singleton Pattern
Singleton Pattern là một pattern cực kỳ phổ biến trong Design Pattern, nó thuộc nhóm các mẫu thiết kế khởi tạo (Creational Patterns). Mục đích của Singleton là đảm bảo rằng một class chỉ có một instance duy nhất và cung cấp một điểm method để truy cập đến instance đó. Đây là một mẫu thiết kế rất phổ biến trong lập trình hướng đối tượng, đặc biệt là khi cần quản lý tài nguyên dùng chung hoặc config hệ thống mà chỉ cần một instance duy nhất
Khi nào nên sử dụng Singleton Pattern
Singleton Pattern được sử dụng trong các trường hợp sau:
- Khi cần kiểm soát truy cập đến một tài nguyên dùng chung: Ví dụ, một kết nối cơ sở dữ liệu duy nhất có thể được chia sẻ giữa nhiều phần của ứng dụng.
- Khi cần giữ một instance duy nhất của một class: Điều này thường được sử dụng trong các class quản lý config hệ thống hoặc ghi nhật ký (logging), nơi mà việc có nhiều instance có thể gây ra vấn đề không nhất quán.
- Khi cần tiết kiệm tài nguyên: Singleton giúp tiết kiệm bộ nhớ vì chỉ một instance của class được tạo ra và tái sử dụng.
Sử dụng Singleton Pattern để tạo một ConfigurationManager cho toàn bộ Service
Giả sử bạn đang phát triển một hệ thống quản lý config cho một ứng dụng. Cấu hình này cần được truy cập ở nhiều nơi khác nhau trong hệ thống, nhưng bạn chỉ muốn có một bản sao duy nhất của config để đảm bảo tính nhất quán.
Đầu tiên, chúng ta cần tạo class ConfigurationManager để quản lý tất cả các config trong Service
|
|
Sau đó, Sử dụng Class ConfigurationManager để load config cho toàn bộ Service
|
|
Tổng kết
Singleton Pattern là một mẫu thiết kế hữu ích khi bạn cần đảm bảo rằng chỉ có một instance duy nhất của một class được tạo ra trong suốt vòng đời của service. Mẫu này giúp quản lý tài nguyên hiệu quả mà còn đảm bảo tính nhất quán của dữ liệu.
Tuy nhiên, bạn cần sử dụng Singleton một cách cẩn thận, vì nếu không kiểm soát tốt, nó có thể dẫn đến các vấn đề như khó khăn trong unit testing và phụ thuộc vào trạng thái của instance. Singleton Pattern là một mẫu thiết kế mạnh mẽ và hữu ích khi bạn cần đảm bảo rằng chỉ có một instance duy nhất của một class được tạo ra trong suốt vòng đời của ứng dụng.
Hy vọng qua bài viết này mình đã giới thiệu tổng quan về Singleton Pattern và cách apply Single vào các business case thực tế của mọi người!
HAPPY CODING!