javascript 디자인 모델 C 공장 모델 원리 와 응용 사례 분석

본 논문 의 사례 는 자바 script 디자인 모델 C 공장 모델 원리 와 응용 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
소개:앞에서 우 리 는 간단 한 공장 모델 을 소개 했다.간단 한 공장 모델 에 심각 한 문제 가 존재 한다.확장 이 필요 할 때 반드시 공장 류 의 소스 코드 를 수정 해 야 한다.우 리 는 두 번 째 demo 에서 최 적 화 를 했 지만 사용 할 때 실행 방법의 이름 을 명확 하 게 지정 해 야 한다.이것 은 사용 원 가 를 높 인 것 임 에 틀림없다.그러면 어떻게 신제품 을 늘 리 고 기 존 코드 에 영향 을 주지 않 습 니까?공장 모델 이 생 겨 났 다.
정의:대상 을 만 드 는 데 사용 할 인 터 페 이 스 를 정의 하여 하위 클래스 가 어떤 종 류 를 예화 할 지 결정 합 니 다.공장 모델 은 하나의 사례 화 를 하위 클래스 로 지연 시 켰 다.공장 모델 은 공장 방법 모델 이 라 고도 부 르 며 가상 구조 기 모델 이나 다 중 공장 모델 이 라 고도 부른다.공장 모델 은 일종 의 창설 형 모델 이다.
장면:아니면 간단 한 공장 모델 을 바탕 으로 하 는 장면 입 니까?우 리 는 공장 모델 로 탄창 류 의 문 제 를 해결 하려 고 합 니 다.
예시:

var Dialog = function(){
  this.show = function(){
    console.log(this.name + ' is show -> ' + this.element);
  }
};
 
Dialog.createNotice = function(){
  var _dialog = new Dialog();
  _dialog.element = '<div>notice</div>';
  _dialog.name = 'notice';
  return _dialog;
};
 
Dialog.createToast = function(){
  var _dialog = new Dialog();
  _dialog.element = '<div>toast</div>';
  _dialog.name = 'toast';
  return _dialog;
};
 
Dialog.createWarnin = function(){
  var _dialog = new Dialog();
  _dialog.element = '<div>warnin</div>';
  _dialog.name = 'warnin';
  return _dialog;
};
 
 
var Factory = {};
 
Factory.NoticeFactory = function(){
  return Dialog.createNotice();
}
 
Factory.ToastFactory = function(){
  return Dialog.createToast();
}
 
Factory.WarninFactory = function(){
  return Dialog.createWarnin();
}
 
var notice = Factory.NoticeFactory();
var toast = Factory.ToastFactory();
var warnin = Factory.WarninFactory();
notice.show(); //notice is show -> <div>notice</div>
toast.show(); //toast is show -> <div>toast</div>
warnin.show(); //warnin is show -> <div>warnin</div>

간단 한 공장 모델 에 비해 공장 모델 은 어떤 문 제 를 해결 하 였 습 니까?
가장 중요 한 것 은 간단 한 공장 모델 의 factory 방법 을 분할 하 는 것 이다.
그 하위 클래스,즉 createToast 방법 으로 이 루어 집 니 다.
그러나 모든 공장 입 구 를 독립 공장 류 로 분해 하기 전의 간단 한 공장 모델 은 새로 추 가 될 때 공장 류 를 수정 해 야 하기 때문에 스위치 원칙 을 위반 했다.
공장 모델 은 새로 추 가 될 때 추가 만 하고 수정 하지 않 을 것 을 보증한다.
프로젝트 가 충분 할 때 Factory 와 Dialog 의 하위 클래스 를 파일 로 뜯 어 관리 할 수 있 습 니 다.
공장 모델 을 쓰 는 동안 자 료 를 찾 아 보 니 모든 사람 이 자신의 이 해 를 가지 고 있 었 다.
보 이 는 일부 공장 모델 의 demo 는 우리 앞에서 간단 한 공장 모델 을 소개 하 는 것 과 같 습 니 다.왜 일 까요?
우리 demo 가 참고 한 것 은 자바 의 책 입 니 다.이 안 에는 추상 적 인 개념 이 포함 되 어 있 습 니 다.전단 에 자신의 이해 로 만 설명 할 수 있 습 니 다.
그래서 우 리 는 약간의 차 이 를 통 해 모든 모델 을 구체 적 으로 소개 하려 고 노력 합 니 다.
이 안의 예 는 특별히 엄밀 하지 않 을 수도 있 고,내 뒤에 천천히 최적화 할 것 이 며,상세 하 게 쓰 는 것 은 단지 하나의 목적 일 뿐이다.
어느 날 누군가가 나 에 게 간단 한 공장 모델 과 공장 모델 의 차이 가 어디 에 있 느 냐 고 물 었 을 때 나 는 내 가 나의 이 해 를 해 줄 수 있 기 를 바란다.
공장 모델 총화:
장점:
*신제품 추가 시 존재 하 는 코드 수정 필요 없 음
*공장 류 만 노출 되 며,내부 에 포 장 된 구체 적 인 구현 에 대해 서 는 사용 시 내부 사용 에 신경 쓰 지 않 아 도 됩 니 다.
단점:
*새로 추 가 될 때 구체 적 인 실현 과 구체 적 인 공장 류 를 제공 해 야 한다.어느 정도 에 시스템 의 복잡 도 를 증가 하고 추가 비용 을 가 져 올 수 있다.
*각 공장 에서 한 가지 제품 만 생산 하면 대량의 공장 류 가 존재 하고 시스템 의 유지 비용 과 운영 비용 을 크게 증가 할 수 있 습 니 다.
관심 있 는 친 구 는 온라인 HTML/CSS/JavaScript 코드 실행 도 구 를 사용 할 수 있 습 니 다.http://tools.jb51.net/code/HtmlJsRun상기 코드 실행 효 과 를 테스트 할 수 있 습 니 다.
자 바스 크 립 트 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,javascript 대상 입문 강좌,JavaScript 오류 및 디 버 깅 기술 요약,JavaScript 데이터 구조 와 알고리즘 기술 총화JavaScript 스 트 리밍 알고리즘 및 기술 총화.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기