학습 노트 5:자바 script 대상 프로 그래 밍 공장 모델 사례 분석

본 고의 실례 는 자 바스 크 립 트 가 대상 프로그램 을 대상 으로 공장 모델 을 설계 하 는 것 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
공장 모델 과 단일 모델https://www.jb51.net/article/184230.htm은 디자인 모델 에서 가장 많이 응 용 된 모델 이 어야 한다.공장 모델 의 정 의 는 창설 대상 의 인터페이스(바 이 두 백과:http://baike.baidu.com/view/1306799.htm를 제공 하 는 것 이다.즉,리더(호출 자)의 지시(파라미터)에 따라 해당 하 는 제품(대상)을 생산 한 다 는 뜻 이다.
1.단순 공장 모델
    간단 한 공장 은 위의 정의 에 따라 서로 다른 매개 변수 에 따라 서로 다른 결 과 를 되 돌려 주 는 것 이다.

  //        
  var car = function(){};
  //    ,      ,      car       (yy   ^_^)
  var benz = function(){};
  var bmw = function(){};
  var audi = function(){};

  //    
  var CarFactory = {
    createCar: function(brand){
       //private member of CarFactory
       var car;
       switch(brand){
        case 'benz':
          car = new benz();
          break;
        case 'bmw':
          car = new bmw();
          break;
        case 'audi':
          car = new audi();
          break;
        default:
          car = new bmw();
       }
       //            ,                  car    
       Interface.ensureImplements(car, Car);
       //    
       return car;
     }
};
//           ,     :
var mycar = CarFactory.createCar('bmw');
//          ,      car     ,           ,    “  ”       

2.공장 모델
공장 모델 과 간단 한 공장 모델 의 차 이 는 공장 모델 이 하위 클래스 를 사용 하여 대상 을 만 드 는 것 이지 독립 된 클래스 가 아니다.

//         
var factory = function(){};
factory.prototype = {
  sellcar: function(brand){
    var car = this.createCar(brand);
    return car;
  },
  createCar: function(){
    throw new Error('unsupported operation on an abstract class');
  }
}

//    
var BJfactory = function(){};
//   factory,   https://www.jb51.net/article/184227.htm        )
extend(BJfactory,factory);
//      
BJfactory.prototype.createCar = function(brand){
  var car;
  switch(brand){
   case 'bmw':
     car = new BJbmw();
     break;
   case 'benz':
     car = new BJbenz();
     break;
   case 'audi':
     car = new BJaudi();
     break;
   default:
     car = new BJbmw();
  }
  Interface.ensureImplements(car, Car);
  return car;
}
//  
var SHfactory = function();
extend(SHfactory, factory);
//     
……

//    ,      
var fac = new BJfactory();
//      
var mycar = fac.sellcar('benz');
//     
fac = new SHfactory();
hercar = fac.sellcar('audi');
//         ,     fac,   factory       ,         ,          
3.유추 PHP(1,2 의 내용 을 이해 하 는 데 도움 이 되 기 를 바 랍 니 다.아래 의 유형 은 실례 일 뿐 실제 존재 하 는 것 이 아 닙 니 다)
만약 에 PHP 를 잘 아 는 학생 이 라면 PHP 와 같은 데이터베이스 클래스 도 공장 모델 이라는 것 을 알 아야 한다.

$db = DataBase.getInstance('mysql');
//   $db   new Mysql(),    class Mysql,  class Oracle,  class MSsql       connect,query  

$db->connect();
$db->query($sql);

관심 있 는 친 구 는 온라인 HTML/CSS/JavaScript 코드 실행 도 구 를 사용 할 수 있 습 니 다.http://tools.jb51.net/code/HtmlJsRun상기 코드 실행 효 과 를 테스트 할 수 있 습 니 다.
자 바스 크 립 트 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,javascript 대상 입문 강좌,JavaScript 오류 및 디 버 깅 기술 요약,JavaScript 데이터 구조 와 알고리즘 기술 총화JavaScript 스 트 리밍 알고리즘 및 기술 총화.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기