학습 노트 3:자바 script 대상 프로 그래 밍 단일 모델 원리 와 실현 방법 분석

본 고 는 자 바스 크 립 트 가 대상 을 대상 으로 하 는 프로그램 설계 의 단일 모델 원리 와 실현 방법 을 실례 로 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
1.단일 모드 개요
바 이 두 백과 에서 단일 모델 에 대한 정의 에서 비롯 되 었 습 니 다.
단일 모드 는 하나의 인 스 턴 스 만 있다 는 뜻 이다.단일 모드 는 하나의 인 스 턴 스 만 있 고 자체 적 으로 예화 되 어 전체 시스템 에 이 인 스 턴 스 를 제공 하도록 확보 합 니 다.이런 종 류 를 일례 류 라 고 한다.
javascript 의 세계 에 서 는 엄격 한 대상 과 클래스 정의 가 없습니다.'모든 대상'은 javascript 에서 대상 입 니 다.자바,c+또는 phop 처럼 특정한 방법 으로 인 스 턴 스 를 되 돌려 서 실현 할 수 없습니다.따라서 자바 script 에 있어 서 우리 가 창조 해 야 할 것 은'여러 번 예화 되 어 서 는 안 되 는'대상 입 니 다.즉,한 번 만 예화 할 수 있 는 대상 입 니 다.
2.간단 한 단일 모드:
한 번 만 실례 화 할 수 있 는 대상 도'대상 글자 의 양'의 정의 방식 으로 실현 할 수 있다.

var singleton = {
  attribute:'',
  method:function(){}
}

이렇게 정 의 된 대상 은 new singleton 방식 으로 다른 대상 을 만 들 수 없습니다(prototype 과 constructor 속성 은 존재 하지 않 습 니 다).
3.개인 구성원 을 포함 하 는 단일 모드:
만약 에 예전 에 제 가 쓴 클래스 구성원 에 관 한 글 을 보면 자 연 스 럽 게 우 리 는 패키지 로 이 루어 질 것 이 라 고 생각 할 수 있 습 니 다.사용 할 패키지 라면 함수 와 함수 로 값 을 되 돌려 줄 것 입 니 다.그래서 이런 사례 모델 은 다음 과 같 습 니 다.

var singleton = function(){
  var private_attribute = '';
  functioin private_method(){}
  return {
   public_attribute:'',
   public_method:function(){}
  };
}

익명 함수 기억 나 세 요?보통 패 키 지 를 사용 할 때 사용 합 니 다.개선 후 다음 과 같 습 니 다.

var singleton = (function(){
  var private_attribute = '';
  functioin private_method(){}
  return {
   public_attribute:'',
   public_method:function(){}
  };
})();

4.불활성 로드(lazy loading,로드 지연)단일 모드
2,3 에서 보 여 준 단일 모드 정의 방식 은 모두 정의 할 때 만 든 단일 예 입 니 다.이렇게 하면 메모리 가 낭비 되 는데 어떻게 사용 할 때 만 만 들 수 있 습 니까?타성 로드 란 먼저 정 의 를 내 린 다음 에 어 딘 가 에 대상 을 만 드 는 것 입 니 다.따라서 함 수 를 사용 해 야 합 니 다.자바 나 phop 에서 단일 모드 는 보통 정적 인 방법 으로 만 드 는 것 을 알 고 있 습 니 다.마찬가지 로 폐쇄 형식의 정의 식 을 개선 하 겠 습 니 다.

var singleton = (function(){
  var unique;
  function getinstance(){
    if(!unique){
      unique = construct();
      return unique;
    }
  }
  function construct(){
    var private_member;
    function private_method(){}
    return {//           
      public_member:'',
      public_method:function(){}
    };
})();

이렇게 단일 대상 을 호출 하 는 방법:

singleton.getinstance().publicmethod();

이렇게 하면 호출 방법 이나 속성 을 인용 할 때 만 진정 으로 유 니 크 대상 을 만 들 수 있 습 니 다.바로 사용 할 때 귀 찮 습 니 다.)
5.심 플 뮤 직 비디오 코드 스타일
참고 로 제 가 js 를 쓰 는 간단 한 스타일 을 공유 하 겠 습 니 다.js 는 프론트 코드 임 에 도 불구 하고 그 자체 로 는 뮤 직 비디오(model,contrller,view,뮤 직 비디오 에 관 한 개념 은 baidu/google)로 나 눌 수 있 습 니 다.그래서 한 페이지 의 js 코드 를 쓸 때 저 는 이렇게 씁 니 다.

//      
var controller = {
  init:function(){}
};
//          
var view = {
  table:{},
  banner:{},
  foot:{}
};
//          
var model = {
  table_data:{}
}

페이지 onload 에서 controuler.init()를 호출 합 니 다.초기 화 작업(데이터 불 러 오기,페이지 렌 더 링,이벤트 감청 등)을 마 쳤 습 니 다.이렇게 쓰 는 목적 은 가능 한 한 같은 논리 적 조직 을 구성 하여 쉽게 찾 고 수정 하 는 것 입 니 다.현 재 는 하나의 초기 형태 일 뿐 입 니 다.이 책 을 읽 은 후에 경량급 모델 을 쓸 수 있 기 를 바 랍 니 다^
관심 있 는 친 구 는 온라인 HTML/CSS/JavaScript 코드 실행 도 구 를 사용 할 수 있 습 니 다.http://tools.jb51.net/code/HtmlJsRun상기 코드 실행 효 과 를 테스트 할 수 있 습 니 다.
자 바스 크 립 트 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,javascript 대상 입문 강좌,JavaScript 오류 및 디 버 깅 기술 요약,JavaScript 데이터 구조 와 알고리즘 기술 총화JavaScript 스 트 리밍 알고리즘 및 기술 총화.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기