この記事では、主に 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 になります。
単純なファクトリメソッドの主な内部関数は、「適切な実装クラスを選択する」です。選択条件またはパラメータのソースは通常、次のように集中しています:
はクライアントから取得されます。はクライアントによって決定されます 受信パラメータ
は設定ファイルから取得され、判定に使用される値は設定ファイルから取得されます
はプログラムの実行時に特定の値から取得されます (特定の実行時間を取得するなど)キャッシュから値を取得します
ポイント シンプル ファクトリの利点:
2. 分離
単純なファクトリーを通じて、クライアントと特定の実装クラスが分離されます。
シンプルファクトリーの欠点: 1. クライアントの複雑さが増す可能性がある
2. サブファクトリーの拡張が不便
シンプルファクトリーの本質: 実装を選択する
シンプル ファクトリを選択する場合:
以上がPHPの簡易ファクトリーパターンを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。