PHP-Entwurfsmuster: Ein Leitfaden für fortgeschrittene Anwendungen

PHPz
Freigeben: 2024-06-04 15:38:00
Original
228 Leute haben es durchsucht

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.

PHP-Entwurfsmuster: Ein Leitfaden für fortgeschrittene Anwendungen

PHP Design Patterns: Advanced Application Guide

Singleton Pattern

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();
Nach dem Login kopieren

Proxy-Muster

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();
Nach dem Login kopieren

Adaptermuster

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);
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!