JavaScript를 사용하여 싱글톤 패턴을 구현하는 방법

PHPz
풀어 주다: 2023-04-26 15:15:55
원래의
832명이 탐색했습니다.

JavaScript에서 싱글톤 패턴은 매우 일반적인 디자인 패턴입니다. 실제 개발에서는 클래스의 인스턴스화 수를 제한하고 전역적으로 인스턴스가 하나만 있도록 보장하기 위해 싱글톤 패턴이 자주 사용됩니다. 이번 글에서는 자바스크립트를 이용하여 싱글턴 패턴을 구현하는 방법을 소개하겠습니다.

싱글턴 패턴은 각 클래스가 하나의 인스턴스만 가질 수 있음을 의미합니다. 클래스에 인스턴스가 하나만 있고 해당 인스턴스에 대한 전역 액세스 지점을 제공하는 객체 생성 패턴입니다.

싱글턴 패턴은 JavaScript에서 널리 사용됩니다. 많은 개발자는 애플리케이션에서 반복되는 개체 인스턴스화 문제를 해결하고 애플리케이션의 전역 상태를 관리하기 위해 싱글톤 패턴을 사용합니다.

JavaScript에는 싱글톤 패턴을 구현하는 방법이 많이 있습니다. 아래에서는 가장 일반적으로 사용되는 두 가지 방법인 클로저와 모듈 패턴을 소개하겠습니다.

클로저를 사용하여 싱글톤 패턴 구현

JavaScript 클로저는 매우 일반적인 디자인 패턴입니다. 함수 범위와 범위 체인을 사용하여 구현됩니다. 싱글턴 패턴은 전역 개체의 인스턴스가 하나만 있음을 보장하므로 클로저를 사용하여 구현할 수 있습니다.

싱글톤 객체는 함수를 반환하는 함수를 통해 구현할 수 있습니다:

var Singleton = (function() {
  var instance;

  function init() {
    // 私有变量和方法
    var privateVar = "I am private!";
    function privateMethod() {
      console.log(privateVar);
    }

    // 公共属性和方法
    return {
      publicVar: "I am public!",
      publicMethod: function() {
        privateMethod();
      }
    };
  }

  return {
    getInstance: function() {
      if (!instance) {
        instance = init();
      }
      return instance;
    }
  };
})();

var obj1 = Singleton.getInstance();
var obj2 = Singleton.getInstance();

console.log(obj1 === obj2); // true
로그인 후 복사

위 코드에서 getInstance() 메서드는 Singleton 클래스의 인스턴스를 반환합니다. 이 클래스는 getInstance() 메서드가 호출될 때 생성됩니다. 처음으로 싱글턴 객체.

개인 변수와 개인 메서드는 init() 함수에 정의되어 있습니다. 이러한 개인 메서드와 개인 변수는 init() 함수 내부에서만 접근할 수 있으며 외부에서는 접근할 수 없습니다.

publicVar 및 publicMethod는 공용 속성이자 메서드입니다. Singleton 개체를 사용하여 외부에서 액세스할 수 있습니다.

Singleton.getInstance()에 두 번째로 접근하면 이미 싱글턴 패턴이 존재하므로 원래 생성된 객체를 반환하면 됩니다. 이는 인스턴스 변수에서 참조를 반환하여 수행됩니다.

모듈 패턴을 사용하여 싱글턴 패턴 구현

모듈 패턴은 싱글턴 객체를 만들 수 있는 일반적인 디자인 패턴이기도 합니다. 모듈 패턴은 객체의 구현 세부 정보를 숨기기 위해 클로저의 개인 변수와 함수를 사용합니다. 모듈 패턴을 사용하면 개인 변수와 함수가 포함된 객체를 쉽게 만들 수 있습니다.

싱글턴 객체를 구현하려면 다음 코드를 사용할 수 있습니다.

var Singleton = (function() {
  // 私有变量和方法
  var privateVar = "I am private!";
  function privateMethod() {
    console.log(privateVar);
  }

  // 公共属性和方法
  return {
    publicVar: "I am public!",
    publicMethod: function() {
      privateMethod();
    }
  };
})();

var obj1 = Singleton;
var obj2 = Singleton;

console.log(obj1 === obj2); // true
로그인 후 복사

위 코드에서 공용 객체 멤버(publicVar)와 공용 객체 메서드( publicMethod)가 있는 Singleton이라는 객체를 생성한 것을 볼 수 있습니다. ).

privateVar 및 privateMethod는 Singleton 개체의 전용 멤버입니다. 비공개 멤버를 구현하는 방법은 클로저를 사용하는 것입니다. 이러한 비공개 멤버는 publicVar 및 publicMethod를 통해서만 액세스할 수 있습니다.

Singleton 객체를 생성한 후 Singleton.publicMethod() 메서드를 사용하여 공개 메서드에 액세스할 수 있습니다.

요약

싱글턴 패턴은 매우 일반적으로 사용되는 디자인 패턴입니다. JavaScript에서는 클로저와 모듈 패턴을 사용하여 싱글톤 패턴을 구현할 수 있습니다.

클로저를 사용하면 개인 변수를 외부에서 숨길 수 있으므로 전역 개체 인스턴스가 하나만 있도록 할 수 있습니다.

모듈 패턴을 사용하면 개인 변수와 함수가 포함된 객체를 더 쉽게 만들 수 있으므로 코드가 더 명확하고 이해하기 쉬워집니다.

어떤 방법을 사용하든 싱글톤 패턴은 애플리케이션의 효율성과 유지 관리성을 크게 향상시킬 수 있는 매우 강력한 디자인 패턴입니다.

위 내용은 JavaScript를 사용하여 싱글톤 패턴을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!