ホームページ ウェブフロントエンド jsチュートリアル JavaScriptデザインパターンのファクトリパターン例の解説_基礎知識

JavaScriptデザインパターンのファクトリパターン例の解説_基礎知識

May 16, 2016 pm 04:57 PM
工場出荷時のパターン

JavaScript ファクトリ メソッドはオリジナルのメソッドです

オブジェクトのプロパティはオブジェクトの作成後に動的に定義できるため、JavaScript が初めて導入されたときは、次のようなコードが使用されます。書かれます

コードをコピー コードは次のとおりです。

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

上記のコードでは、オブジェクトの car を作成します。次に、それにいくつかの属性を与えます。青色で、ドアが 4 つあり、走行距離は 1 ガロンあたり 25 マイルです。最後の属性は実際には関数へのポインターであり、属性がメソッドであることを意味します。このコードを実行すると、対象の車が使用できるようになります。しかし、ここには問題があります。つまり、car の複数のインスタンスを作成する必要がある可能性があり、これは明らかに良い方法ではありません。

解決策: ファクトリ メソッド
この問題を解決するために、開発者は特定の型のオブジェクトを作成して返すファクトリ関数を作成しました。たとえば、関数 createCar() を使用すると、前にリストした車オブジェクトの作成操作をカプセル化できます。

コードをコピー コードは次のとおりです。
function createCar(sColor,iDoors,iMpg) {
var oTempCar = 新しいオブジェクト;
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(); //「赤」を出力

oCar2.showColor(); //「青」を出力

このファクトリー関数を呼び出して新しいオブジェクトを作成し、それに必要な属性をすべて指定します。createCar() 関数にパラメーターを追加することで、作成する車オブジェクトの色、ドア、mpg 属性に値を割り当てることができます。 。これにより、2 つのオブジェクトが同じプロパティを持つことになりますが、プロパティ値は異なります。このメソッドの欠点は、車のオブジェクトが作成されるたびに (つまり、createCar 関数が 1 回呼び出される)、オブジェクトごとに showColor メソッドが繰り返し作成されることです。実際、これは各オブジェクトで同じものを共有する必要はありません。関数。 。そこで、メソッド属性を関数の外で宣言しようとします。

ファクトリ関数の外でオブジェクト メソッドを定義する
一部の開発者は、この問題を回避するために、ファクトリ関数の外でオブジェクト メソッドを定義し、属性を介してメソッドをポイントします。

コードをコピー コードは次のとおりです。
function showColor() {
alert (この色);
}
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(); //「赤」を出力

oCar2.showColor(); //「青」を出力

上記の書き換えられたコードでは、関数 showColor() が関数 createCar() の前に定義されています。 createCar() 内で、オブジェクトには既存の showColor() 関数へのポインタが与えられます。機能的には、これにより関数オブジェクトを繰り返し作成する問題は解決されますが、意味的には関数はオブジェクトのメソッドのようには見えません。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaファクトリーパターンの利点は何ですか Javaファクトリーパターンの利点は何ですか Dec 25, 2023 pm 05:40 PM

Java ファクトリ パターンの利点: 1. システム結合の軽減、2. コードの再利用性の向上、3. オブジェクト作成プロセスの非表示、4. オブジェクト作成プロセスの簡素化、5. 依存関係注入のサポート、6. パフォーマンスの向上、7.テスト容易性の強化、8. 国際化のサポート、9. オープンとクローズの原則の推進、10. より優れたスケーラビリティの提供。詳細な紹介: 1. システムの結合を軽減します。ファクトリ パターンは、オブジェクト作成プロセスをファクトリ クラスに集中化することでシステムの結合を軽減します。2. コードの再利用性を向上します。

Java ファクトリ パターンの詳細な分析: 単純なファクトリ、ファクトリ メソッド、抽象ファクトリの違いを区別して適用する Java ファクトリ パターンの詳細な分析: 単純なファクトリ、ファクトリ メソッド、抽象ファクトリの違いを区別して適用する Dec 28, 2023 pm 03:09 PM

Java ファクトリ パターンの詳細な説明: 単純なファクトリ、ファクトリ メソッド、および抽象ファクトリの違いとアプリケーション シナリオを理解する はじめに ソフトウェア開発プロセスでは、複雑なオブジェクトの作成および初期化プロセスに直面したとき、多くの場合、この問題を解決するためにファクトリ パターンを使用する必要があります。問題。一般的に使用されるオブジェクト指向プログラミング言語として、Java はさまざまなファクトリ パターン実装を提供します。この記事では、Java ファクトリ パターンの 3 つの一般的な実装方法 (単純ファクトリ、ファクトリ メソッド、抽象ファクトリ) を詳細に紹介し、それらの違いとアプリケーション シナリオについて詳しく分析します。 1つ、

Golangでファクトリーパターンを適用する方法 Golangでファクトリーパターンを適用する方法 Apr 04, 2024 am 11:33 AM

ファクトリ パターン Go では、ファクトリ パターンを使用すると、具体的なクラスを指定せずにオブジェクトを作成できます。オブジェクトを表すインターフェイス (Shape など) を定義します。このインターフェイスを実装する具象型 (Circle や Rectangle など) を作成します。ファクトリ クラスを作成して、特定のタイプのオブジェクト (ShapeFactory など) を作成します。ファクトリ クラスを使用して、クライアント コードでオブジェクトを作成します。この設計パターンにより、具体的な型に直接結合することなく、コードの柔軟性が向上します。

Javaフレームワークにおけるファクトリパターンの適用シナリオは何ですか? Javaフレームワークにおけるファクトリパターンの適用シナリオは何ですか? Jun 01, 2024 pm 04:06 PM

ファクトリ パターンは、オブジェクトの作成プロセスを分離し、それらをファクトリ クラスにカプセル化して具象クラスから分離するために使用されます。 Java フレームワークでは、ファクトリ パターンは次の目的で使用されます。 複雑なオブジェクト (Spring の Bean など) を作成する オブジェクトの分離を提供し、テスト容易性と保守性を強化する 拡張機能をサポートし、新しいファクトリ クラスを追加することで新しいオブジェクト タイプのサポートを強化する

C++ 関数のオーバーロードと書き換えにおけるシングルトン モードとファクトリ モードの適用 C++ 関数のオーバーロードと書き換えにおけるシングルトン モードとファクトリ モードの適用 Apr 19, 2024 pm 05:06 PM

シングルトン パターン: 関数のオーバーロードを通じて、シングルトン インスタンスにさまざまなパラメーターを提供します。ファクトリ パターン: 関数の書き換えを通じてさまざまなタイプのオブジェクトを作成し、作成プロセスを特定の製品クラスから切り離します。

PHP デザイン パターン: コード エクセレンスへの道 PHP デザイン パターン: コード エクセレンスへの道 Feb 21, 2024 pm 05:30 PM

はじめに PHP デザイン パターンは、ソフトウェア開発における一般的な課題に対する実証済みのソリューションのセットです。これらのパターンに従うことで、開発者はエレガントで堅牢かつ保守しやすいコードを作成できます。これらは、開発者が SOLID 原則 (単一責任、オープン/クローズ、リスコフ置換、インターフェイスの分離、依存関係の反転) に従うのに役立ち、それによってコードの可読性、保守性、拡張性が向上します。デザイン パターンの種類 さまざまなデザイン パターンがあり、それぞれに独自の目的と利点があります。最も一般的に使用される PHP 設計パターンの一部を次に示します。 シングルトン パターン: クラスにインスタンスが 1 つだけあることを保証し、このインスタンスにグローバルにアクセスする方法を提供します。ファクトリ パターン: 正確なクラスを指定せずにオブジェクトを作成します。これにより、開発者は条件付きで次のことを行うことができます。

PHPでファクトリーパターンを使用するにはどうすればよいですか? PHPでファクトリーパターンを使用するにはどうすればよいですか? Jun 02, 2024 pm 10:00 PM

PHP のファクトリ パターンを使用すると、正確なクラスを指定せずにオブジェクトを生成できます。これは、Product インターフェイスや ProductA や ProductB などの特定の製品クラスを定義するなど、実際のカテゴリを知らずに多数のオブジェクトを作成するのに適しています。 Create Factory クラスは、タイプ (「A」など) を指定して対応する製品を作成する createProduct メソッドを提供します。 Factory::createProduct('A') を使用して必要なタイプの製品を作成し、コードの保守性、再利用性、動的作成の柔軟性を向上させます。

Javaファクトリパターンの詳細説明:単純ファクトリ、ファクトリメソッド、抽象ファクトリ Javaファクトリパターンの詳細説明:単純ファクトリ、ファクトリメソッド、抽象ファクトリ Dec 28, 2023 am 10:23 AM

Java ファクトリ パターンの詳細説明: 単純ファクトリ、ファクトリ メソッド、抽象ファクトリ ファクトリ パターンは、さまざまなニーズに応じてオブジェクトを動的に作成し、オブジェクトの作成と使用を分離し、再利用性と再利用性を向上させるために使用される、一般的に使用される設計パターンです。コードの使用、スケーラビリティ。 Java には、ファクトリ パターンの主な形式として、単純ファクトリ、ファクトリ メソッド、抽象ファクトリの 3 つがあります。 1. シンプル ファクトリ モデル シンプル ファクトリ モデルは、最も基本的なファクトリ モデルであり、最も単純な形式です。ファクトリ クラスを通じてオブジェクトを作成し、さまざまなパラメータに基づいてどのオブジェクトを作成するかを決定します。

See all articles