---
description: https://app.gitbook.com/@javascriptuse/s/advanced/creational-pattern-ok
---

# Singleton Pattern (ok)

Đây là pattern kinh điển của giới code đạo. Giống như kiểu võ công nhập môn của coder, bất kì ai cũng phải nắm được. Mình sẽ không giải thích kĩ mà chỉ mô tả dùng pattern này trong JavaScript thế nào Mặc dù cách code pattern trong JavaScript khá dị so với ngôn ngữ Java thông thường nhưng về tư tưởng là giống nhau

```
var KieuPhongSingleton = (function() {
  var instantiated;
  function init() {
    // KieuPhongSingleton here
    return {
      thiTrienVoCong: function(chieuthuc) {
        console.log('Thi trien vo cong ' + chieuthuc);
      }
    };
  }
  return {
    getInstance: function() {
      if (!instantiated) {
        instantiated = init();
      }
      return instantiated;
    }
  };
})();
// calling public methods is then as easy as:
KieuPhongSingleton.getInstance().thiTrienVoCong('Hàng Long Thập Bát Chưởng');
```

Ở ví dụ trên instance KieuPhong được tạo ra là duy nhất và thực hiện method thiTrienVoCong Hàng Long Thập Bát Chưởng. Pattern tránh tạo ra quá nhiều object không cần thiết gây lãng phí bộ nhớ
