> 웹 프론트엔드 > JS 튜토리얼 > JavaScript 디자인 패턴의 싱글턴 패턴 소개

JavaScript 디자인 패턴의 싱글턴 패턴 소개

PHPz
풀어 주다: 2018-09-30 09:12:40
원래의
1113명이 탐색했습니다.

이 글에서는 주로 JavaScript 디자인 패턴의 싱글톤 모드를 소개합니다. 싱글톤 모드는 정적 액세스에서 인스턴스화된 객체입니다. 이 객체는 이미 인스턴스화되었거나 인스턴스화될 고유한 입구를 통해서만 액세스할 수 있습니다. 변화의 도움이 필요한 친구들이 참고할 수 있습니다.

싱글피스 모드 설명

1. 설명: 싱글피스 모드는 정적 액세스에서 인스턴스화된 객체입니다. , 이 개체는 Java, .Net C# 및 기타 서버 측 동적 언어와 같은 개체 지향 언어인 인스턴스화된 개체인 고유한 입구를 통해서만 액세스할 수 있습니다. 클래스 작업이 원활하게 진행되고 병렬 처리가 발생할 수 있습니다.

2. 싱글톤 모드의 이점:

1) 빈번한 메모리 작업 속도를 높이고 점유를 방지하기 위해 새로운 작업을 줄입니다. 메모리
2) , 대규모 시스템에서 개체의 오버헤드를 최소화합니다.
3) 위에서 언급한 것처럼 특정 유형의 작업이 병렬 처리로 인한 데이터 이상을 방지하기 위해 정확한 순서로 수행되도록 할 수 있습니다. 🎜>

물론 위에서 언급한 이점은 모두 서버측 언어로 되어 있습니다. JavaScript와 같은 약한 유형의 언어에서는 스크립트가 모두 클라이언트 측에서 작동하고 작동 충돌 문제가 없으므로 걱정하지 마십시오. 이는 전체 서버를 사용하는 유일한 사람과 동일합니다. 걱정하지 마십시오.

인스턴스 소스 코드

var Singleton = {
    instance: null,
    MailSender: function() {
        var self = this;
        self.to = '';
        self.title = '';
        self.content = '';
        self.send = function() {
             //send body
        }
    },
    getInstance : function() {
        if (this.instance == null) {
            this.instance = new Singleton.MailSender();
        }
        return this.instance;
    }
}
로그인 후 복사

사용법:

var mail = Singleton.getInstance();
mail.to = 'toname#mail.com';
mail.title = '单件模式发送';
mail.content = '发送内容';

mail.send();
로그인 후 복사
DWZ와 같은 리치 UI 프레임워크와 같은 일부 글로벌 프레임워크에서 글로벌 싱글톤을 생성하면 Singleton.instance가 값을 가지며 다시 생성할 필요가 없습니다.

물론입니다. , 이렇게 쓰면 더 명확해질 것이고, 서버측 언어와 결합될 것입니다:

Singleton.getInstance().to = 'toname#mail.com';
Singleton.getInstance().title = '单件模式发送';
Singleton.getInstance().content = '发送内容';

Singleton.getInstance().send();
로그인 후 복사

기타 실용적인 설명

어디 싱글톤 모드가 더 유용합니까? 예를 들어, 대규모 동시 작업 등 운영 서버에 통일된 구성 파일이 있는 경우, 거래소의 운영 프로세스 기록 등 선착순 상황에 주의를 기울여야 하는 경우 등이 있습니다. , 단일 모드를 사용하여 작동할 수 있습니다.

추가: 단일 모드 방법:

1. 위 방법을 게으른 방법이라고 합니다

2. 메소드:

var Singleton = {
    instance : new Singleton.MailSender(),
    MailSender : function() {
      var self = this;
      self.to = '';
      self.title = '';
      self.content = '';
      self.send = function() {
          //send body
      }
   },
   getInstance : function() {
        return this.instance;
   }
}
로그인 후 복사
사용 방법은 동일합니다.

클로저 메소드를 사용하여 싱글톤 모드 생성 및 인스턴스 객체 숨기기

코드:

var Singleton = (function() {
    var instance = null;
    function MailSender() {
       this.to = '';
       this.title = '';
       this.content = '';
    }
    MailSender.prototype.send = function() {
       //send body
    }
    return {
       getInstance : function() {
          if (instance == null) {
             instance = new MailSender();
          }
          return instance;
       }
    }
})();
로그인 후 복사

2. 사용법:

//一样用法
var mail = Singleton.getInstance();
mail.to = 'toname#mail.com';
mail.title = '闭包式 单件模式发送';
mail.content = '发送内容';

mail.send();
로그인 후 복사
위 내용은 이 장의 전체 내용입니다. 더 많은 관련 튜토리얼을 보려면

JavaScript 비디오 튜토리얼을 방문하세요.

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