이 글에서는 주로 JavaScript 디자인 패턴 중 팩토리 메소드 패턴을 소개합니다. 이 글에서는 간단한 팩토리 패턴, 다중 팩토리 메소드 패턴 등에 대해 설명합니다. 필요한 친구들이 참고할 수 있습니다
1. 간단한 팩토리 패턴
설명: 동일한 인터페이스에 대한 구현 클래스 생성을 구현하는 팩토리 클래스를 생성하는 것입니다.
하지만 JavaScript에는 인터페이스 같은 것이 없는 것 같아서 인터페이스 레이어를 제거합니다. 물론 구현 클래스 아래의 멤버 변수와 메서드는 동일해야 합니다. >예: 문자 메시지 보내기 및 이메일 보내기의 예는 다음과 같습니다.
1. 이메일 보내기 [구현] 수업
2. SMS 보내기 [구현] 수업function MailSender() { this.to = ''; this.title = ''; this.content = ''; } MailSender.prototype.send = function() { //send body }3. 팩토리 클래스 만들기:
function SmsSender() { this.to = ''; this.title = ''; this.content = ''; } SmsSender.prototype.send = function() { //send body }4. 이 팩토리 클래스 사용:
function SendFactory() { this.sender = null; } SendFactory.prototype.produce = function(type) { var me = this; if (type == 'mail') { me.sender = new MailSender(); } else if (type == 'sms') { me.sender = new SmsSender(); } return me.sender; }
var factory = new SendFactory(); var sender = factory.produce('mail'); //sms sender.to = 'toName#mail.com'; sender.title = '邮件测试标题!'; sender.content = '发送内容'; sender.send();2. 🎜>
설명: 다중 팩토리 모드 메소드는 전달된 문자를 기반으로 반환 구현이 이루어지기 때문에 일반 팩토리 메소드를 개선한 것입니다. 문자를 잘못 입력하면 처리되지 않거나, 에서 처리될 수 있습니다. 잘못된 방법을 사용하면 이러한 오류를 피할 수 있습니다. 위의 팩토리 클래스를 개선했습니다.
사용 방법:function SendFactory() { this.sender = null; } SendFactory.prototype.produceMail = function() { var me = this; me.sender = new MailSender(); return me.sender; } SendFactory.prototype.produceSms = function() { var me = this; me.sender = new SmsSender(); return me.sender; }3. 정적 팩토리 메소드 패턴
var factory = new SendFactory(); var sender = factory.produceSms(); //produceMail sender.to = 'toName#xxxxx'; sender.title = '短信发送方法标题'; sender.content = '发送内容'; sender.send();설명: 위의 여러 팩토리 메소드 패턴의 메소드를 정적 식별자로 변경하면 SendFactory를 인스턴스화할 필요가 없습니다. 팩토리 클래스 코드는 다음과 같이 수정됩니다.
사용법:
팩토리 메소드 패턴 설명
var SendFactory = { produceMail : function() { return new MailSender(); }, produceSms : function() { return new SmsSender(); } }
객체 지향 지침 프로그래밍, 초기화해야 할 제품(실제 모델, 이름: 클래스 이름, 멤버 속성, 작업 방법 등)이 많은 경우, 즉 제품을 생성하고 [동일한 인터페이스를 구현]해야 하는 경우, 첫 번째 패턴은 입력 유형이 잘못되었을 수 있습니다. 두 번째 모드에서는 필요할 때 팩토리 인스턴스가 생성됩니다.
var sender = SendFactory.produceMail(); sender.to = 'toName#mail.com'; sender.title = '邮件发送标题'; sender.content = '发送内容'; sender.send();위 내용은 이 장의 전체 내용입니다. 더 많은 관련 튜토리얼을 보려면
자바스크립트 비디오 튜토리얼을 방문하세요!

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

Dreamweaver Mac版
시각적 웹 개발 도구
