PHP-Designmodus Decorator (Dekorationsmodus)

高洛峰
Freigeben: 2023-03-01 10:18:02
Original
1204 Leute haben es durchsucht

Code kopieren Der Code lautet wie folgt:
/**
* Dekorationsmodus
*
* Fügt einem Objekt dynamisch einige zusätzliche Verantwortlichkeiten hinzu, was im Hinblick auf die erweiterte Funktionalität flexibler ist als die Generierung von Unterklassen
*/
header("Content-type:text/html;charset=utf-8") ;
abstrakte Klasse MessageBoardHandler
{
öffentliche Funktion __construct(){}
abstrakte öffentliche Funktion filter($msg);

Klasse MessageBoard erweitert MessageBoardHandler
{
public function filter($msg)
{
return „Verarbeitung des Inhalts im Message Board|“.$msg;
}

$obj = new MessageBoard() ;
echo $obj->filter("Achten Sie darauf, den Dekorationsmodus zu lernen
");

/ --- Das Folgende ist die Verwendung des Dekorationsmodus ----
Klasse MessageBoardDecorator erweitert MessageBoardHandler
{
private $_handler = null;

public function __construct($handler)
{
parent::__construct() ;
$this- >_handler = $handler;
}

public function filter($msg)
{
return $this->_handler->filter( $msg);
}
}

// Filter html
class HtmlFilter erweitert MessageBoardDecorator
{
public function __construct($handler)
{
parent::__construct($handler );
}

public function filter($msg)
{
return „HTML-Tags herausfiltern|“.parent::filter($msg) ;; // HTML herausfiltern Bei der Verarbeitung von Tags wird zu diesem Zeitpunkt lediglich Text ohne Verarbeitung hinzugefügt
}
}

// Filtern sensibler Wörter
Klasse SensitiveFilter erweitert MessageBoardDecorator
{
public function __construct($ handler)
{
parent::__construct($handler);
}

public function filter($msg)
{
return „Sensible Wörter herausfiltern|“ .parent::filter($msg); // Zu diesem Zeitpunkt einfach Text ohne Verarbeitung hinzufügen
}

$obj = new HtmlFilter(new SensitiveFilter( new MessageBoard()));
echo $obj->filter("Achten Sie darauf, den Dekorationsmodus zu lernen!
");

Verwandte Etiketten:
php
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