1. 간단한 공장 모드
설명 : 동일한 인터페이스에 대한 구현 클래스의 생성을 구현하는 공장 클래스를 만드는 것입니다.
그러나 JavaScript에는 인터페이스 번호가 없으므로 인터페이스 레이어를 제거합니다. 물론, 구현 클래스의 멤버 변수와 방법은 동일해야합니다.
예를 들어 : 현재 문자 메시지를 보내고 이메일을 보내는 예를 제시 할 수 있습니다.
1>. 메일 보내기 [구현] 클래스
코드 사본은 다음과 같습니다.
기능 mailsender () {
this.to = '';
this.title = '';
this.content = '';
}
mailsender.prototype.send = function () {
// 몸을 보내십시오
}
2>. [구현] 클래스를 보내는 SMS
코드 사본은 다음과 같습니다.
함수 smssender () {
this.to = '';
this.title = '';
this.content = '';
}
smssender.prototype.send = function () {
// 몸을 보내십시오
}
3>. 공장 수업 만들기 :
코드 사본은 다음과 같습니다.
함수 sendFactory () {
this.sender = null;
}
sendfactory.prototype.prodice = function (type) {
var me = 이것;
if (type == 'mail') {
me.sender = 새로운 MailSender ();
} else if (type == 'sms') {
me.sender = 새로운 smssender ();
}
나를 돌려주십시오.
}
4>. 이 공장 클래스 사용 :
코드 사본은 다음과 같습니다.
var factory = 새로운 sendfactory ();
var sender = factory.proctor ( 'mail'); // SMS
sender.to = 'toname#mail.com';
sender.title = '메일 테스트 제목!';
sender.content = '내용 보내기';
sender.send ();
2. 다중 공장 방법 모드
참고 : 여러 공장 모드 방법은 통과 된 문자를 기반으로하기 때문에 일반 공장 방법을 개선하는 것입니다. 문자 입력이 올바르지 않으면 오류로 처리되거나 처리되지 않을 수 있습니다. 여러 공장 모드 방법은 이러한 오류를 피할 수 있습니다.
우리는 위의 공장 수업을 개선했습니다.
코드 사본은 다음과 같습니다.
함수 sendFactory () {
this.sender = null;
}
sendfactory.prototype.producemail = function () {
var me = 이것;
me.sender = 새로운 MailSender ();
나를 돌려주십시오.
}
sendfactory.prototype.producesm = function () {
var me = 이것;
me.sender = 새로운 smssender ();
나를 돌려주십시오.
}
사용 방법 :
코드 사본은 다음과 같습니다.
var factory = 새로운 sendfactory ();
var sender = factory.producesms (); // 생산 메일
sender.to = 'toname#xxxxx';
sender.title = 'SMS Sending Method Title';
sender.content = '내용 보내기';
sender.send ();
3. 정적 공장 방법 모드
참고 : 위의 여러 공장 메소드 모드 방법을 정적 식별으로 변경하여 SendFactory를 인스턴스화 할 필요가 없습니다.
다음과 같이 공장 코드를 수정하십시오.
코드 사본은 다음과 같습니다.
var sendfactory = {
ProduceMail : function () {
새 MailSender ()를 반환합니다.
},
생산자 : function () {
새로운 smssender ()를 반환합니다.
}
}
사용 방법 :
코드 사본은 다음과 같습니다.
var sender = sendFactory.produceMail ();
sender.to = 'toname#mail.com';
sender.title = '메일 보내기 제목';
sender.content = '내용 보내기';
sender.send ();
공장 방법 모델 설명
객체 지향적 사고 프로그래밍 설명에서, 많은 제품 (실제 모델, 이름 : 클래스 이름, 멤버 속성 및 작동 방법 등이 있고, 초기화되어야하는, 즉 제품을 생성해야하며, [동일한 인터페이스를 구현할 때] 공장 메소드 모드를 사용할 수 있습니다. 첫 번째 모드는 입력 유형 오류가 가능하며 두 번째 모드는 필요할 때 공장 인스턴스가 생성됩니다.