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

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

零到壹度
零到壹度オリジナル
2018-03-29 11:48:388492ブラウズ

この記事では、主に 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 までご連絡ください。