26/10/2018, 23:41

Một mẫu thiết kế Singleton trong javascript

Singleton Pattern là một mẫu thiết kế (design pattern) được sử dụng để bảo đảm rằng mỗi một method chỉ có được một thể hiện (instance) duy nhất và mọi tương tác đều thông qua thể hiện này. Singleton Pattern cung cấp một phương thức khởi tạo, duy trì một thuộc tính tĩnh để tham chiếu đến một thể ...

Bạn gặp một sự cố về hiệu năng hệ thống. Cùng một thời điểm, các bạn đang sử dụng một lúc nhiều đối tượng và chúng làm tiêu tốn quá nhiều tài nguyên của hệ thống. Đây là vấn đề mà bạn cần phải khắc phục, và Singleton pattern có thể giúp bạn thực hiện được điều đó.

Singleton Pattern là một mẫu thiết kế (design pattern) được sử dụng để bảo đảm rằng mỗi một method chỉ có được một thể hiện (instance) duy nhất và mọi tương tác đều thông qua thể hiện này.

Singleton Pattern cung cấp một phương thức khởi tạo, duy trì một thuộc tính tĩnh để tham chiếu đến một thể hiện của method Singleton này. Nó cung cấp thêm một bien tĩnh trả về thuộc tính tĩnh này.

Tạo một đối tượng duy nhất với mẫu Singleton

Chúng ta bắt đầu với mẫu Singleton và xử lý rắc rối mà chúng ta vừa gặp phải. Chúng ta muốn chắc chắn rằng chỉ tạo duy nhất 1 đối tượng cho 1 lớp cụ thể dù cho người khác có cố gắng tạo bao nhiêu đối tượng đi nữa.

var Singleton = (function () {
    var instance;
 
    function createInstance() {
        var object = new Object("I am the instance");
        return object;
    }
 
    return {
        getInstance: function () {
            if (!instance) {
                instance = createInstance();
            }
            return instance;
        }
    };
})();
 
function run() {
 
    var instance1 = Singleton.getInstance();
    var instance2 = Singleton.getInstance();
 
    alert("Same instance? " + (instance1 === instance2));  
}

 

+2