php ファクトリ メソッド パターン: 1. ファクトリ メソッドは、製品に独立したファクトリ クラスを提供し、異なるファクトリ インスタンスを通じて異なる製品インスタンスを作成します。2. 適切なカプセル化と明確なコード構造があり、優れたスケーラビリティとシールド製品カテゴリー。
#php ファクトリ メソッド パターン:
1. ファクトリ メソッド パターンとはFactoryメソッド プロダクトに対して独立したファクトリ クラスを提供し、異なるファクトリ インスタンスを通じて異なるプロダクト インスタンスを作成することです。 2. ファクトリ メソッド パターンの利点これは、優れたカプセル化と明確なコード構造を備えています。 各オブジェクトの作成は条件付きで制限されています。たとえば、特定の製品オブジェクトを呼び出すには、オブジェクト自体を作成する複雑なプロセスを知らなくても、製品のクラス名と制約パラメータだけを知る必要があります。モジュール間の結合を減らします。
は優れたスケーラビリティを備えています。新しい製品カテゴリを追加するには、ファクトリ クラスを適切に追加するか、ファクトリ クラスを拡張するだけです。たとえば、次の例では、データベースの追加 Oracle 運用するにはOracleクラスを追加するだけで、ファクトリクラスは作業を変更することなくシステム拡張を完了できます。
商品カテゴリをブロックします。 この機能は非常に重要です。呼び出し元は、製品クラスの実装がどのように変更されるかを気にする必要はありません。製品のインターフェイスだけを気にする必要があります。インターフェイスが変更されない限り、上位モジュールは変わりません。システムは変更されるべきではありません。
3. 利用シナリオAlipay、WeChat、UnionPay の接続モード (connectMode) と支払い方法 (payMode)。ファクトリ モードを使用すると、「顧客」は特定の接続方法や支払い方法を知る必要がなく、connectMode と payMode を呼び出すだけで済みます。ファクトリモードは、MySQL、
SQL Server、
Oracle## の接続モード (connectMode) やクエリモード (selectMode) などの操作に使用できます。 # などをカプセル化します。 具体的なケースを見てみましょう:
//抽象产品类
abstract class DataBase
{
abstract function connect();
abstract function getOne();
}
//具体产品类
class MySql extends DataBase
{
function connect()
{
return "MySQL连接对象返回";
}
function getOne()
{
return "MySQL返回查询结果";
}
}
//具体产品类
class SqlServer extends DataBase
{
function connect()
{
return "SQL Server连接对象返回";
}
function getOne()
{
return "SQL Server返回查询结果";
}
}
//抽象工厂类
abstract class FactoryDataBase{
function createDataBase(){}
}
//具体工厂类
class FactoryMySql extends FactoryDataBase
{
public function createDataBase()
{
return new MySql();
}
}
//具体工厂类
class FactorySqlServer extends FactoryDataBase
{
public function createDataBase()
{
return new SqlServer();
}
}
$mysql = new FactoryMySql();
$db1 = $mysql->createDataBase();
4. ファクトリ メソッド パターンの構成
PHP プログラミングの入門から熟練度まで
以上がPHPファクトリーメソッドパターンの問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。