Antwort: In diesem Artikel werden drei PHP-Entwurfsmuster vorgestellt: Singleton-Muster, Proxy-Muster und Adaptermuster. Detaillierte Beschreibung: Das Singleton-Muster stellt sicher, dass nur eine Instanz einer Klasse erstellt wird und stellt so einen globalen Zugriffspunkt bereit. Das Proxy-Muster stellt eine Ebene einer Proxy-Schnittstelle zu einem anderen Objekt bereit, um den Zugriff oder die Kontrolle zu verbessern. Das Adaptermuster ermöglicht die gemeinsame Verwendung kompatibler und inkompatibler Klassen, sodass sie mit vorhandenem Clientcode funktionieren.
Das Singleton Pattern stellt sicher, dass eine Klasse nur eine Instanz hat und stellt einen globalen Zugriffspunkt bereit.
class Singleton { private static $instance; private function __construct() { // ... } public static function getInstance(): Singleton { if (!isset(self::$instance)) { self::$instance = new Singleton(); } return self::$instance; } } // 使用 $instance = Singleton::getInstance();
Das Proxy-Muster stellt eine Ebene des Schnittstellen-Proxys für ein anderes Objekt bereit. Es verbessert den Zugriff oder die Kontrolle über das Zielobjekt.
class DBConnection { private $host; private $user; // ... public function connect() { // ... } } class DBConnectionProxy { private $connection; public function connect() { if (!$this->connection) { $this->connection = new DBConnection(); $this->connection->connect(); } return $this->connection; } } // 使用 $proxy = new DBConnectionProxy(); $connection = $proxy->connect();
Das Adaptermuster ermöglicht die Verwendung einer inkompatiblen Klasse mit vorhandenem Clientcode.
class OldPaymentSystem { public function charge($amount) { // ... } } class NewPaymentSystem { public function pay($amount) { // ... } } class PaymentSystemAdapter { private $oldSystem; public function __construct(OldPaymentSystem $oldSystem) { $this->oldSystem = $oldSystem; } public function pay($amount) { $this->oldSystem->charge($amount); } } // 使用 $oldSystem = new OldPaymentSystem(); $adapter = new PaymentSystemAdapter($oldSystem); $adapter->pay(100);
Das obige ist der detaillierte Inhalt vonPHP-Entwurfsmuster: Ein Leitfaden für fortgeschrittene Anwendungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!