Singleton Pattern javascript (ok)
https://app.gitbook.com/@javascriptuse/s/advanced/design-pattern-trong-javascript
Singleton
là một object chỉ khởi tạo duy nhất một lần, nghĩa là nó chỉ tạo một instance mới của một class nếu chưa tồn tại instance nào, còn nếu có thì nó chỉ việc trả lại instance đó. Nhờ vậy mà dù có gọi hàm khởi tạo nhiều lần thì chúng ta cũng chỉ nhận được một object duy nhất, giúp tránh lãng phí bộ nhớ.
JavaScript đã xây dựng sẵn singleton
như là một tính năng, được gọi là object literal
. Ví dụ:
Bởi vì mỗi object trong JavaScript chiếm một vùng trong bộ nhớ và khi gọi tới object user
, chúng ta nhận được một tham chiếu tới nó. Nếu thử gán biến user
vào một biến khác và thay đổi biến đó. Ví dụ:
Điều này làm thay đổi cả 2 object bởi vì JavaScript truyền tham chiếu chứ không phải truyền giá trị. Vậy nên vẫn chỉ có duy nhất một object trong bộ nhớ:
Chúng ta cũng có thể implement Singleton
bằng Module pattern
. Ví dụ:
Trong đoạn code trên, chúng ta tạo một instance mới bằng cách gọi hàm singleton.getInstance
. Nếu một instance đã tồn tại, hàm này đơn giản chỉ trả về instance đó, nếu instance chưa tồn tại, nó tạo một instance mới bằng hàm init()
Last updated