싱글턴 모드는 모나드 모드라고도 하며, 더 일반적으로는 싱글턴 모드라고도 합니다. 비교적 간단하지만 소프트웨어 디자인에서 가장 일반적으로 사용되는 디자인 패턴입니다.
싱글턴 모드 소개:
싱글톤 패턴을 적용할 때 싱글톤을 생성하는 클래스는 인스턴스가 하나만 존재하도록 해야 합니다. 많은 경우 전체 시스템에는 시스템의 전반적인 동작을 조정하는 전역 개체가 하나만 있으면 됩니다. 예를 들어, 전체 시스템의 구성 파일에는 통합 읽기 및 수정을 위한 단일 개체가 있으며, 다른 개체에서도 구성 데이터가 필요할 때 이 단일 개체를 통해 구성 데이터를 얻을 수 있습니다. 환경.
싱글톤 패턴의 아이디어는 클래스가 객체에 대한 참조(항상 동일함)와 인스턴스를 가져오는 메서드(일반적으로 getInstance 이름을 사용하는 정적 메서드)를 반환할 수 있다는 것입니다. 그런 다음 이 메서드를 호출할 때 클래스가 보유한 참조가 비어 있지 않으면 참조가 반환됩니다. 그렇지 않으면 클래스의 인스턴스가 생성되고 인스턴스 참조가 클래스가 보유한 참조에 할당되고 그런 다음 돌아 왔습니다. 동시에, 클래스의 생성자를 프라이빗 메서드로 정의하여 다른 함수가 생성자를 사용하여 객체를 인스턴스화하는 것을 방지하고 클래스의 정적 메서드를 통해서만 클래스의 유일한 인스턴스를 얻습니다.
일반적으로 Javascript는 새 객체가 생성될 때마다 인스턴스를 생성하며, 인스턴스는 다른 주소를 가리킵니다. 이렇게:
(function(){ function Person(name){ this.name = name; } Person.prototype.work = function(){ console.log(this.name + " is working"); } var p1 = new Person("Darren"); p1.work(); var p2 = new Person("Jack"); p2.work(); }());
위에서, 새로운 Person 객체가 생성될 때마다 달라집니다.
Javascript에서 싱글턴 패턴을 구현하는 방법은 무엇입니까?
--객체를 생성할 때 먼저 객체가 존재하는지 확인합니다. 존재하면 객체가 생성되지 않고, 존재하지 않으면 객체가 생성됩니다.
(function(){ var PersonSingleton = (function(){ var instance; function init(){ return { name: 'Anonymous', work: function(){ console.log(this.name + ' working'); } }; } return { getInstance: function(){ if(!instantiated){ instantiated = init(); } return instantiated; } } })(); var p1 = PersonSingleton.getInstance(); p1.work(); var p2 = PersonSingleton.getInstance(); p2.work(); }());
위에서 PsonSingleton 객체의 getInstance 메소드를 통해 얻은 인스턴스는 매번 동일합니다.
여기에서는 JavaScript 싱글톤 모드에 대한 모든 관련 지식을 소개합니다. 이것이 모든 사람에게 도움이 되기를 바랍니다.