ホームページ バックエンド開発 PHPチュートリアル PHPの簡易ファクトリーパターンを詳しく解説

PHPの簡易ファクトリーパターンを詳しく解説

Mar 29, 2018 am 11:48 AM
php 工場出荷時のパターン

この記事では、主に PHP のシンプルなファクトリー モードについて詳しく説明します。これは非常に参考になるので、皆さんのお役に立てれば幸いです。編集者をフォローして見てみましょう。

PHPの簡易ファクトリーパターンを詳しく解説

1. 単純なファクトリの定義

特定の実装を気にせずにオブジェクト インスタンスを作成する関数を提供します。作成されるインスタンスの型は、インターフェイス、抽象クラス、または具象です。クラス。

2. 単純なファクトリーの構造と説明

単純なファクトリーの構造は次のとおりです:

  • Api: 顧客が必要とする関数インターフェースを定義します

  • Impl:具体的に API を実装する実装クラス。複数存在する場合があります

  • Factory: Factory、適切な実装クラスを選択して API インターフェース オブジェクトを作成します

  • Client: Client、Factory を通じて API インターフェース オブジェクトを取得し、 APIインターフェース用のプログラム

Apiインターフェース:

/**
 * 接口的定义,该接口可以通过简单工厂来创建
 * 
 * @author Administrator
 *
 */
public interface Api {

	/**
	 * 具体功能方法的定义
	 * 
	 * @param s
	 *            需要的参数
	 */
	public void operation(String s);
}
ログイン後にコピー

ImplA:

/**
 * 接口的具体实现对象A
 * 
 * @author Administrator
 *
 */
public class ImplA implements Api {

	@Override
	public void operation(String s) {
		// 实现的功能
		System.out.println("ImplA s==" + s);

	}

}
ログイン後にコピー

ImplB:

/**
 * 接口的具体实现对象B
 * 
 * @author Administrator
 *
 */
public class ImplB implements Api {

	@Override
	public void operation(String s) {
		// 实现的功能
		System.out.println("ImplB s==" + s);

	}

}
ログイン後にコピー

ファクトリー:

/**
 * 工厂类,用来创建Api对象
 * 
 * @author Administrator
 *
 */
public class Factory {
	/**
	 * 具体创建Api对象的方法
	 * 
	 * @param condition
	 *            从外部传入的选择条件
	 * @return
	 */
	public static Api createApi(int condition) {
		// 应该根据某些条件去选择究竟创建哪一个具体的实现对象
		// 这些条件可以从外部传入,也可以从其他途径获取
		// 如果只有一个实现,可以省略条件
		Api api = null;
		if (condition == 1) {
			api = new ImplA();
		} else if (condition == 2) {
			api = new ImplB();
		}
		return api;
	}

}
ログイン後にコピー

テストクラスクライアント:

public class Client {
	public static void main(String[] args) {
		// 通过简单工厂来获取接口对象
		Api api = Factory.createApi(1);
		api.operation("正在使用简单工厂模式");
	}

}
ログイン後にコピー

簡単な工場呼び出しシーケンス図:

単純なファクトリの命名案:

  • クラスの命名案は「モジュール名+Factory」です。たとえば、ユーザーモジュールのファクトリは UserFactory

  • と呼ばれます。
  • メソッド名は通常「get+インターフェース名」または「create+インターフェース名」です。たとえば、ユーザー インターフェイス名が UserEbi の場合、メソッド名は通常 getUserEbi または createUserEbi になります。

単純なファクトリメソッドの主な内部関数は、「適切な実装クラスを選択する」です。選択条件またはパラメータのソースは通常、次のように集中しています:

  1. はクライアントから取得されます。はクライアントによって決定されます 受信パラメータ

  2. は設定ファイルから取得され、判定に使用される値は設定ファイルから取得されます

  3. はプログラムの実行時に特定の値から取得されます (特定の実行時間を取得するなど)キャッシュから値を取得します

ポイント シンプル ファクトリの利点:

    パッケージ化を支援します
  1. シンプル ファクトリはシンプルですが、コンポーネントのパッケージ化を実現するのに非常に親切です。コンポーネントの外側で実際にインターフェイスをプログラミングします。

2. 分離

単純なファクトリーを通じて、クライアントと特定の実装クラスが分離されます。

シンプルファクトリーの欠点: 1. クライアントの複雑さが増す可能性がある

2. サブファクトリーの拡張が不便

シンプルファクトリーの本質: 実装を選択する

シンプル ファクトリを選択する場合:

    特定の実装を完全にカプセル化して分離し、外部がインターフェイス経由でのみパッケージを操作できるようにする場合は、シンプル ファクトリを選択して、クライアントが特定の成果を気にせずに、対応するインターフェイスを工場から入手します。
  • 外部オブジェクトの作成責任を一元的に管理および制御したい場合は、単純なファクトリを選択できます。

  • 推奨学習:「
PHPビデオチュートリアル

以上がPHPの簡易ファクトリーパターンを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

See all articles