Heim Web-Frontend js-Tutorial javascript设计模式之工厂模式示例讲解_基础知识

javascript设计模式之工厂模式示例讲解_基础知识

May 16, 2016 pm 04:57 PM
工厂模式

javaScript工厂方式原始的方式

因为对象的属性可以在对象创建后动态定义,这在 JavaScript 最初引入时都会编写类似下面的代码

复制代码 代码如下:

var oCar = new Object;
oCar.color = "blue";
oCar.doors = 4;
oCar.mpg = 25;
oCar.showColor = function() {
  alert(this.color);
};

在上面的代码中,创建对象 car。然后给它设置几个属性:它的颜色是蓝色,有四个门,每加仑油可以跑 25 英里。最后一个属性实际上是指向函数的指针,意味着该属性是个方法。执行这段代码后,就可以使用对象 car。不过这里有一个问题,就是可能需要创建多个 car 的实例,这显然不是很好的方式。

解决方案:工厂方法
要解决该问题,开发者创造了能创建并返回特定类型的对象的工厂函数。例如,函数 createCar() 可用于封装前面列出的创建 car 对象的操作:

复制代码 代码如下:

function createCar(sColor,iDoors,iMpg) {
  var oTempCar = new Object;
  oTempCar.color = sColor;
  oTempCar.doors = iDoors;
  oTempCar.mpg = iMpg;
  oTempCar.showColor = function() {
    alert(this.color);
  };
  return oTempCar;
}

var oCar1 = createCar("red",4,23);
var oCar2 = createCar("blue",3,25);

oCar1.showColor();        //输出 "red"
oCar2.showColor();        //输出 "blue"

调用此工厂函数,将创建新对象,并赋予它所有必要的属性,给 createCar() 函数加上参数,即可为要创建的 car 对象的 color、doors 和 mpg 属性赋值。这使两个对象具有相同的属性,却有不同的属性值。该方法有个不好的地方在于每创建一个car对象(即调用一次createCar函数)都会重复的为每个对象创建showColor 方法,而这时没有必要的而事实上,每个对象都共享同一个函数。于是我们尝试在函数之外去声明其方法属性。

在工厂函数外定义对象的方法
有些开发者在工厂函数外定义对象的方法,然后通过属性指向该方法,从而避免这个问题:

复制代码 代码如下:

function showColor() {
  alert(this.color);
}

function createCar(sColor,iDoors,iMpg) {
  var oTempCar = new Object;
  oTempCar.color = sColor;
  oTempCar.doors = iDoors;
  oTempCar.mpg = iMpg;
  oTempCar.showColor = showColor;
  return oTempCar;
}

var oCar1 = createCar("red",4,23);
var oCar2 = createCar("blue",3,25);

oCar1.showColor();        //输出 "red"
oCar2.showColor();        //输出 "blue"

在上面这段重写的代码中,在函数 createCar() 之前定义了函数 showColor()。在 createCar() 内部,赋予对象一个指向已经存在的 showColor() 函数的指针。从功能上讲,这样解决了重复创建函数对象的问题;但是从语义上讲,该函数不太像是对象的方法。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die Anwendungsszenarien von Factory-Mustern im Java-Framework? Was sind die Anwendungsszenarien von Factory-Mustern im Java-Framework? Jun 01, 2024 pm 04:06 PM

Das Factory-Muster wird verwendet, um den Erstellungsprozess von Objekten zu entkoppeln und sie in Factory-Klassen zu kapseln, um sie von konkreten Klassen zu entkoppeln. Im Java-Framework wird das Factory-Muster verwendet, um: komplexe Objekte zu erstellen (z. B. Beans in Spring) Objektisolation bereitzustellen, Testbarkeit und Wartbarkeit zu verbessern. Erweiterungen zu unterstützen und die Unterstützung für neue Objekttypen durch Hinzufügen neuer Factory-Klassen zu erhöhen

Was sind die Vorteile des Java-Factory-Musters? Was sind die Vorteile des Java-Factory-Musters? Dec 25, 2023 pm 05:40 PM

Die Vorteile des Java-Factory-Musters: 1. Reduzieren Sie die Wiederverwendbarkeit des Codes. 3. Vereinfachen Sie den Objekterstellungsprozess. 6. Sorgen Sie für eine bessere Leistung. Verbesserung der Testbarkeit; 8. Unterstützung der Internationalisierung; 9. Förderung des offenen und geschlossenen Prinzips; 10. Bereitstellung einer besseren Skalierbarkeit. Detaillierte Einführung: 1. Reduzieren Sie die Kopplung des Systems, indem Sie den Objekterstellungsprozess in einer Factory-Klasse zentralisieren. 2. Verbessern Sie die Wiederverwendbarkeit von Code usw.

So wenden Sie ein Factory-Muster in Golang an So wenden Sie ein Factory-Muster in Golang an Apr 04, 2024 am 11:33 AM

Factory-Muster In Go ermöglicht das Factory-Muster die Erstellung von Objekten ohne Angabe einer konkreten Klasse: Definieren Sie eine Schnittstelle (z. B. Shape), die das Objekt darstellt. Erstellen Sie konkrete Typen (z. B. Kreis und Rechteck), die diese Schnittstelle implementieren. Erstellen Sie eine Factory-Klasse, um Objekte eines bestimmten Typs zu erstellen (z. B. ShapeFactory). Verwenden Sie Factory-Klassen, um Objekte im Client-Code zu erstellen. Dieses Entwurfsmuster erhöht die Flexibilität des Codes ohne direkte Kopplung an konkrete Typen.

Eine eingehende Analyse des Java-Fabrikmusters: Unterscheidung und Anwendung der Unterschiede zwischen einfachen Fabriken, Fabrikmethoden und abstrakten Fabriken Eine eingehende Analyse des Java-Fabrikmusters: Unterscheidung und Anwendung der Unterschiede zwischen einfachen Fabriken, Fabrikmethoden und abstrakten Fabriken Dec 28, 2023 pm 03:09 PM

Ausführliche Erläuterung des Java Factory-Musters: Verstehen Sie die Unterschiede und Anwendungsszenarien einfacher Fabriken, Fabrikmethoden und abstrakter Fabriken. Einführung Wenn wir im Softwareentwicklungsprozess mit komplexen Objekterstellungs- und Initialisierungsprozessen konfrontiert werden, müssen wir häufig das Fabrikmuster verwenden, um dieses Problem zu lösen Problem. Als häufig verwendete objektorientierte Programmiersprache bietet Java eine Vielzahl von Factory-Pattern-Implementierungen. In diesem Artikel werden die drei gängigen Implementierungsmethoden des Java-Factory-Musters ausführlich vorgestellt: einfache Factory, Factory-Methode und abstrakte Factory, und eine eingehende Analyse ihrer Unterschiede und Anwendungsszenarien durchgeführt. eins,

Die Anwendung des Singleton-Modus und des Factory-Modus beim Überladen und Umschreiben von C++-Funktionen Die Anwendung des Singleton-Modus und des Factory-Modus beim Überladen und Umschreiben von C++-Funktionen Apr 19, 2024 pm 05:06 PM

Singleton-Muster: Stellen Sie Singleton-Instanzen durch Funktionsüberladung unterschiedliche Parameter zur Verfügung. Fabrikmuster: Erstellen Sie verschiedene Objekttypen durch Umschreiben von Funktionen, um den Erstellungsprozess von bestimmten Produktklassen zu entkoppeln.

Detaillierte Erläuterung des Java-Factory-Musters: einfache Factory, Factory-Methode und abstrakte Factory Detaillierte Erläuterung des Java-Factory-Musters: einfache Factory, Factory-Methode und abstrakte Factory Dec 28, 2023 am 10:23 AM

Ausführliche Erläuterung des Java-Factory-Musters: einfache Factory, Factory-Methode und abstrakte Factory. Das Factory-Muster ist ein häufig verwendetes Entwurfsmuster. Es wird verwendet, um Objekte entsprechend unterschiedlichen Anforderungen dynamisch zu erstellen, die Erstellung und Verwendung von Objekten zu trennen und die Wiederverwendbarkeit zu verbessern Verwendung von Code. In Java gibt es drei Hauptformen von Fabrikmustern: einfache Fabrik, Fabrikmethode und abstrakte Fabrik. 1. Einfaches Fabrikmodell Das einfache Fabrikmodell ist das grundlegendste Fabrikmodell und die einfachste Form. Es erstellt Objekte über eine Factory-Klasse und bestimmt anhand verschiedener Parameter, welches Objekt erstellt werden soll.

Verstehen Sie das Factory-Muster in der objektorientierten PHP-Programmierung Verstehen Sie das Factory-Muster in der objektorientierten PHP-Programmierung Aug 10, 2023 am 10:37 AM

Das Factory-Muster in der objektorientierten PHP-Programmierung verstehen Das Factory-Muster ist ein häufig verwendetes Entwurfsmuster, das verwendet wird, um die Erstellung und Verwendung von Objekten während des Erstellungsprozesses von Objekten zu entkoppeln. Bei der objektorientierten PHP-Programmierung kann uns das Factory-Muster dabei helfen, die Erstellung und den Lebenszyklus von Objekten besser zu verwalten. In diesem Artikel wird das Factory-Muster in PHP anhand von Codebeispielen ausführlich vorgestellt. In PHP können wir den Objekterstellungs- und Initialisierungsprozess implementieren, indem wir das Factory-Muster verwenden, anstatt direkt das neue Schlüsselwort zu verwenden. Dies hat den Vorteil, dass in Zukunft Änderungen vorgenommen werden müssen

PHP-Entwurfsmuster: Der Weg zur Code-Exzellenz PHP-Entwurfsmuster: Der Weg zur Code-Exzellenz Feb 21, 2024 pm 05:30 PM

Einführung PHP-Entwurfsmuster sind eine Reihe bewährter Lösungen für häufige Herausforderungen in der Softwareentwicklung. Durch Befolgen dieser Muster können Entwickler eleganten, robusten und wartbaren Code erstellen. Sie unterstützen Entwickler bei der Einhaltung der SOLID-Prinzipien (Single Responsibility, Open-Closed, Liskov Replacement, Interface Isolation und Dependency Inversion) und verbessern so die Lesbarkeit, Wartbarkeit und Skalierbarkeit des Codes. Arten von Designmustern Es gibt viele verschiedene Designmuster, jedes mit seinem eigenen einzigartigen Zweck und seinen eigenen Vorteilen. Hier sind einige der am häufigsten verwendeten PHP-Entwurfsmuster: Singleton-Muster: Stellt sicher, dass eine Klasse nur eine Instanz hat und bietet eine Möglichkeit, global auf diese Instanz zuzugreifen. Factory-Muster: Erstellt ein Objekt, ohne seine genaue Klasse anzugeben. Es ermöglicht Entwicklern dies unter bestimmten Bedingungen

See all articles