多くのクラスは、あなたのニーズに応じて、その後で取り出し、配列にオブジェクトをインスタンス化します。管理が簡単。
クラス レジストリ{ 保護 静的 $ストア = 配列(); プライベート 静的 $インスタンス。 公共の 静的な 機能のgetInstance(){ 場合(!ISSET(自己:: $インスタンス)){ 自己 :: $インスタンス = 新しい自己; } リターン自己:: $インスタンス。 } パブリック 関数 のisValid($キー){ リターン array_key_exists($キー、レジストリ:: $ストア); } パブリック 関数 のget($キー){ 場合($この - >のisValid($キーは)) を返す レジストリを:: $ストア [ $キー]; } パブリック 関数 セット($キー、 $のOBJ ){ レジストリ :: $ストア [ $キー ] = $ OBJ 。 } } クラスのconnectDB { プライベート $ホスト; プライベート $のユーザー名。 プライベート $パスワード; 民間 の$ CONN 。 パブリック 関数 __construct($ホスト、$ユーザ名、$パスワード){ $この - >ホスト= $ホスト; $この - >ユーザ名= $ユーザ名。 $この - >パスワード= $パスワード; } パブリック 関数getConnect(){ リターン にmysql_connect($この - >ホスト、$この - >ユーザ名、$この - > パスワード); } } エコー '<BR/>' 。 // 使用测试 の$ REG =レジストリ:: のgetInstance(); $のREG - >セット( 'DB1'、新しいのconnectDB( 'localhostの'、 'ルート'、 'マッキー' )); $のREG - >セット( 'DB2'、新しいのconnectDB( '2jdc8#のX @ 0K5Dt @' '192.168.1.198'、 'テスト'、 )); しますprint_r($のREG - >( 'DB1'を取得));
デザインパターン6つの原則:https://www.cnblogs.com/sns007/p/6409961.html