>  기사  >  웹 프론트엔드  >  JavaScript 디자인 패턴의 팩토리 소개

JavaScript 디자인 패턴의 팩토리 소개

不言
不言원래의
2018-07-03 14:52:081226검색

이 글은 주로 자바스크립트 디자인 패턴 중 팩토리 패턴을 소개하며, 팩토리 패턴의 개념과 원리를 완전한 예제 형태로 분석하고, 팩토리 패턴을 활용하기 위한 자바스크립트 정의와 관련 운영 기법도 참고할 수 있습니다.

이 문서의 예제에서는 JavaScript 디자인 패턴의 팩토리 패턴을 설명합니다. 다음과 같이 참조용으로 모든 사람과 공유하세요.

1. 팩토리 패턴 개념

팩토리 패턴은 객체를 생성하기 위한 인터페이스를 정의합니다. 이 인터페이스는 하위 클래스에서 인스턴스화할 클래스를 결정합니다. 이 패턴은 클래스의 인스턴스화를 하위 클래스로 연기합니다. 서브클래스는 인터페이스 메서드를 재정의하여 생성 시 자체 객체 유형(추상 팩토리)을 지정할 수 있습니다.

이 모드는 특히 많은 설정 파일에 의존하는 등 개체 생성 과정에 값을 할당할 때 매우 유용합니다. 더욱이, 프로그램에서 서브클래스가 생성되어야 하는 객체의 유형을 정의하도록 하는 데 사용되는 팩토리 메소드를 종종 볼 수 있습니다.

2. 팩토리 모드의 기능과 주의사항

모드의 기능:

1. 물체 구성은 매우 복잡합니다. 신발을 신는 것은 매우 간단하지만 신발을 만드는 과정은 매우 어렵습니다. 복잡함

2. 다양한 예를 만들려면 특정 환경에 의존해야 합니다. 공장에서는 신발과 옷을 만들 수 있고, 공장에서는 나에게 필요한 신발(신발은 다름)을 만든 다음 지정된 장소로 보낼 수 있습니다( 장소는 다를 수 있음), 이는 다른 사례로 이해될 수 있습니다.

3. 동일한 속성을 가진 많은 수의 품목을 처리합니다. 예를 들어 신발 한 켤레를 구입하는 경우 생산할 공장을 찾을 필요가 없습니다.

참고 사항:

1. 공장을 남용하지 마십시오. 때로는 코드가 복잡해집니다. 3

3 공장 패턴 코드 및 실제 요약

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title>工厂模式</title>
</head>
<body>
<script>
 //1.工厂应该有厂长来决定运行到底哪条产品线
 //2.消费者-》子类
 var gongchang = {};
 gongchang.chanyifu = function(){
  this.gongren = 50;
  console.log("我们有"+this.gongren);
 }
 gongchang.chanxie = function(){
  this.gongren = 100;
  console.log("产鞋子");
 }
 gongchang.yunshu = function(){
  this.gongren = 10;
  console.log("运输");
 }
 gongchang.changzhang = function(para){
  return new gongchang[para]();
 }
 var we = gongchang.changzhang("chanyifu");
 var me = gongchang.changzhang("chanxie");
 console.log(me.gongren);
 var ys = gongchang.changzhang("yunshu");
 console.log(ys.gongren);
</script>
</body>
</html>

작업 효과는 다음과 같습니다.

위 내용은 모두의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

JavaScript 디자인 패턴의 프록시 패턴 소개

Vue에서 Echarts를 사용하는 두 가지 방법 소개

위 내용은 JavaScript 디자인 패턴의 팩토리 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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