>  기사  >  웹 프론트엔드  >  JavaScript 디자인 패턴 클래식 단순 팩토리 패턴 코드 예

JavaScript 디자인 패턴 클래식 단순 팩토리 패턴 코드 예

黄舟
黄舟원래의
2017-03-20 11:08:021287검색

Simple팩토리 패턴은 어떤 클래스 인스턴스를 생성할지 결정하는 메서드이며 이러한 인스턴스는 동일한 인터페이스를 갖는 경우가 많습니다. 패턴은 인스턴스화된 유형이 컴파일 타임에 결정되지 않고 실행 시에 결정될 때 주로 사용됩니다. 쉽게 말하면 회사 식품 저장실의 음료 자판기와 같습니다. 커피를 원할 것인지, 우유를 원할 것인지는 어떤 버튼을 누르느냐에 따라 결정됩니다.

간단한 팩토리 패턴은 ajax 객체를 생성할 때에도 매우 유용합니다.

이 라이브러리는 xhr 객체의 가져오기 및 게시는 물론 도메인 간 사용 jsonp 및 사용의 편의를 위해 이러한 메소드는 동일한 인터페이스로 추상화됩니다.

var request1 = Request(‘cgi.xx.com/xxx’ , ”get’ );
request1.start();
request1.done( fn );
var request2 = Request(‘cgi.xx.com/xxx’ , ”jsonp’ );
request2.start();
request2.done( fn );

요청은 실제로 xhr 또는 jsonp 인스턴스를 생성할지 여부에 따라 결정됩니다. 암호.

사실 js에서는 소위 생성자 도 단순한 팩토리입니다. 방금 옷을 승인했습니다. 이 옷을 벗고 내부를 살펴보겠습니다.

이 코드를 통해 Firefox, Chrome 등의 브라우저에서 new를 완벽하게 시뮬레이션할 수 있습니다.

       function A( name ){
this.name = name;
}
function 
Object
Factory(){
var obj = {},
Constructor = 
Array
.prototype.shift.call( arguments );
obj.
proto
 =  typeof Constructor .prototype === ‘number’  ? Object.prototype
:  Constructor .prototype;
var ret = Constructor.apply( obj, arguments );
return
 typeof ret === ‘object’ ? ret : obj;
}
var a = ObjectFactory( A, ‘svenzeng’ );
alert ( a.name );  //svenzeng

이 코드는 es5의 new 및 생성자의 관련 지침에서 가져온 것임을 알 수 있습니다. -new라고 불리는 것 자체는 단지 객체를 복사하고 다시 쓰는 과정일 뿐이며, 생성되는 것은 ObjectFactory를 호출할 때 전달된 매개변수에 의해 결정됩니다.

관련 기사:

클래식 JavaScript 디자인 패턴, 전략 패턴에 대한 자세한 설명

클래식 JavaScript 디자인 패턴에 대한 자세한 설명 , 싱글턴 패턴

자바스크립트 디자인 패턴 중 옵저버 패턴에 대한 자세한 소개

위 내용은 JavaScript 디자인 패턴 클래식 단순 팩토리 패턴 코드 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.