設計パターンは、ソフトウェア設計に実証済みのソリューションを提供し、一般的なプログラミングの問題を解決します。この記事では、PHP の一般的なデザイン パターンを詳しく調べ、シングルトン パターン、ファクトリ メソッド パターン、オブザーバー パターンをカバーする実践的なケースを通じて説明します。
PHP デザイン パターンの実践的な詳細な説明
デザイン パターンは、一般的なプログラミングの問題を解決するソフトウェア デザインの実証済みのソリューションのセットを提供します。この記事では、PHP で一般的に使用されるデザイン パターンを詳しく掘り下げ、実際のケースを通して説明します。
シングルトン パターン
シングルトン パターンは、クラスが 1 回だけインスタンス化されることを保証します。これは、グローバル リソースまたは構成マネージャーに役立ちます。
class Database { private static ?\PDO $instance = null; private function __construct() {} public static function getInstance(): \PDO { if (self::$instance === null) { self::$instance = new \PDO('mysql:host=localhost;dbname=my_db', 'user', 'password'); } return self::$instance; } } // 使用 Singleton $db1 = Database::getInstance(); $db2 = Database::getInstance(); // 两个变量指向同一个 PDO 对象 var_dump($db1 === $db2); // true
ファクトリ メソッド パターン
ファクトリ メソッド パターンは、オブジェクトを作成するインターフェイスを定義しますが、サブクラスが作成プロセスを変更できるようにします。これにより、作成ロジックと製品クラスを分離する柔軟な方法が提供されます。
interface Shape { public function draw(): void; } class Circle implements Shape { public function draw(): void { echo 'Drawing a circle.' . PHP_EOL; } } class Square implements Shape { public function draw(): void { echo 'Drawing a square.' . PHP_EOL; } } class ShapeFactory { public static function createShape(string $type): Shape { switch ($type) { case 'circle': return new Circle(); case 'square': return new Square(); default: throw new InvalidArgumentException('Invalid shape type.'); } } } // 使用工厂方法 $circle = ShapeFactory::createShape('circle'); $square = ShapeFactory::createShape('square'); $circle->draw(); // Drawing a circle. $square->draw(); // Drawing a square.
Observer パターン
Observer パターンは、1 つのオブジェクト (サブジェクト) が複数のオブジェクト (オブザーバー) に状態の変化を通知できる、1 対多の依存関係を定義します。
りー以上がPHPのデザインパターンを実践的に詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。