학습 노트 5:자바 script 대상 프로 그래 밍 공장 모델 사례 분석
4325 단어 Javascript대상 을 향 하 다공장 모드
공장 모델 과 단일 모델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 스 트 리밍 알고리즘 및 기술 총화.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Javascript에서 Math.max와 Math.max.apply의 차이점과 용법 상세 설명최근에 작은 사례를 만들 때 Math를 만났어요.max.apply라는 용법은 이전에 보기 드물게 재미있게 느껴졌으니 기록해 보세요. 1Math.max 문법:Math.max(n1,n2,n3,...,nX)반환값:max(...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.