디자인 패턴은 소프트웨어 설계에 대한 입증된 솔루션을 제공하여 일반적인 프로그래밍 문제를 해결합니다. 이 기사에서는 PHP의 일반적인 디자인 패턴을 심층적으로 살펴보고 싱글톤 패턴, 팩토리 메소드 패턴 및 관찰자 패턴을 다루는 실제 사례를 통해 설명합니다.
PHP 디자인 패턴에 대한 자세한 실제 설명
디자인 패턴은 일반적인 프로그래밍 문제를 해결하기 위해 소프트웨어 디자인을 위한 검증된 솔루션 세트를 제공합니다. 이 기사에서는 PHP에서 일반적으로 사용되는 디자인 패턴을 살펴보고 실제 사례를 통해 설명합니다.
싱글턴 패턴
싱글턴 패턴은 클래스가 한 번만 인스턴스화되도록 보장합니다. 이는 전역 리소스 또는 구성 관리자에 유용합니다.
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
Factory Method Pattern
Factory Method Pattern은 객체를 생성하지만 하위 클래스가 생성 프로세스를 변경할 수 있도록 허용하는 인터페이스를 정의합니다. 이는 생성 논리와 제품 클래스를 분리하는 유연한 방법을 제공합니다.
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 Pattern
Observer 패턴은 하나의 개체(주체)가 여러 개체(관찰자)에게 상태 변경을 알릴 수 있는 일대다 종속 관계를 정의합니다.
아아아아위 내용은 실제 PHP 디자인 패턴에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!