Singleton là Design Pattern được thiết kế để hạn chế khởi tạo instance của Class về một đối tượng duy nhất. Tức là nó chỉ khởi động một lần và sử dụng lại cho toàn bộ hệ thống Show ahihi đồ ngốc nghếch thanh hùng nè ahihi đồ ngốc nghếch thanh hùng nè anh hùng thông minh lắm anh hùng ebudezain Nói một cách đơn giản hơn thì instance của Singleton giống như một “đối tượng toàn cầu” vậy. Ví dụ bạn kết nối vào db thì bạn chỉ nên kết nối vào DB đúng 1 lần duy nhất thôi chứ đừng kết nối nhiều lần. Giả sử có 1 triệu câu truy vấn mà bạn kết nối vào đó 1 triệu lần thì DB bạn sẽ vui đến mức cười "xỉu" tôi thích như vậy anh hùng thông minh lắm bài viết được viết bởi cường tráng hùng https. //ebudezain. com/ anh hùng ebudezain Mẫu mã trong JavaScriptahihi đồ ngốc nghếch thanh hùng nè anh hùng thông minh lắm tôi thích như vậy tôi thích như vậy anh hùng đẹp trai tôi thích như vậy Với php, java, hay C# các bạn đều có lớp để khai báo các biến private rồi tạo hàm createInstance để kiểm tra xem đã tồn tại trong biến tĩnh rồi thì return về, nếu không tồn tại thì tạo mới. Nhưng với js thì không chắc. anh hùng đẹp trai tôi thích như vậy bài viết được viết bởi cường tráng hùng https. //ebudezain. com/ tôi thích như vậy read data support With js thì đúng nghĩa là chúng ta chỉ có chức năng nên công việc khai báo sẽ như sau. ahihi đồ ngốc nghếch thanh hùng nè tôi thích như vậy
read data support anh hùng đẹp trai read data support giải thích bộ sưu tập. lúc đầu bạn chưa xài hàm getInstance thì instance đang không có gì là undefine nhưng khi bạn đã từng xài rồi mà còn gọi lại hàm getInstance thì nó sẽ return về cái instance ban đầu đã tồn tại rồi. bài viết được viết bởi cường tráng hùng https. //ebudezain. com/ anh hùng thông minh lắm anh hùng đẹp trai Trong js sida double when you are used class chứ không phải cugnx chắc chắn là bạn buộc buộc phải sử dụng hàm. Vì vậy nếu bạn đang sử dụng class thì bạn cũng có 1 cách viết khác khá hay về singleton như sau Singleton là gì? . Vậy cấu trúc của Singleton ra sao và cách phát triển khai thác như thế nào, cùng mình tìm hiểu nội dung dưới đây định nghĩa
Dịch. Singleton là 1 mẫu design pattern thuộc nhóm khởi tạo cho phép bạn chắc chắn rằng 1 Layer sẽ chỉ có 1 instance duy nhất và nó cung cấp 1 method cho instance này ở bất cứ đâu trong chương trình Singleton giải quyết bài toán nào?Singleton Pattern giải quyết 2 vấn đề dưới đây cùng 1 lúc
Cách hoạt động của nó sẽ như sau. Thử tưởng tượng rằng bạn đã tạo 1 đối tượng rồi, tuy nhiên sau đó bạn lại quyết định tạo thêm 1 đối tượng mới. Lúc này thay vì việc nhận được 1 đối tượng mới, bạn sẽ nhận về đối tượng mà bạn tạo ra lúc trước Lưu ý rằng hành vi này không thể thực hiện được với 1 phương thức khởi tạo thông thường (như sử dụng mới), vì nó sẽ luôn trả về 1 đối tượng mới Tại đây, khách hàng không thể không nhận ra rằng họ đang làm việc với cùng 1 đối tượng
Có 1 cách nhìn khác cho vấn đề này. bạn không muốn phần mã giải quyết vấn đề #1 ở trên bị phân tán khắp nơi trong chương trình, mã nguồn của mình. Sẽ tốt hơn khi chúng được viết hết trong 1 lớp, đặc biệt là nếu các phần mã khác phụ thuộc vào nó Cách mạng Singleton khai thácTất cả các triển khai (implementations) của Singleton đều sẽ bao gồm 2 bước chung sau
Nếu mã của bạn truy cập đến lớp Singleton, nó có thể gọi đến phương thức tĩnh của Singleton, và sẽ luôn được trả về chung 1 đối tượng Ví dụ thực tếSingleton có nhiều ví dụ thực tế
Constructor, way development SingletonLớp Singleton báo phương thức tĩnh getInstance trả về cùng 1 phiên bản của nó Phương thức khởi tạo Singleton nên được ẩn khỏi máy khách mã, cách duy nhất để lấy đối tượng Singleton được gọi là phương thức getInstance Khai thác mã Singleton Pattern với TypeScript
Nội dung trên đã có phần nào giải đáp thắc mắc Singleton là gì cũng như những ứng dụng thực tế của Singleton. Nếu bạn muốn đóng góp thì đừng phản hồi lại với TopDev nhé. Chúc bạn code mau lên trình |