코드 복사 코드는 다음과 같습니다.
/**
* 데코레이션 모드
*
* 객체에 일부 추가 책임을 동적으로 추가합니다. 이는 확장 기능 측면에서 하위 클래스를 생성하는 것보다 더 유연합니다.
*/
header(" Content-type:text/html;charset=utf-8");
추상 클래스 MessageBoardHandler
{
공용 함수 __construct(){}
추상 공용 함수 필터($msg) ;
}
class MessageBoard는 MessageBoardHandler를 확장합니다.
{
공용 함수 필터($msg)
{
return "메시지 보드의 콘텐츠 처리|".$msg; >}
}
$obj = new MessageBoard();
echo $obj->filter("데코레이션 모드를 꼭 배워보세요
")
// - -- 다음은 데코레이션 모드를 사용합니다.---
class MessageBoardDecorator는 MessageBoardHandler를 확장합니다.
{
private $_handler = null
public function __construct($handler)
{
parent; ::__construct();
$this->_handler = $handler;
}
공용 함수 필터($msg)
{
return $this->_handler-> filter($msg);
}
}
// 필터 html
class HtmlFilter 확장 MessageBoardDecorator
{
공용 함수 __construct($handler)
{
parent ::__construct($handler );
}
공용 함수 filter($msg)
{
return "HTML 태그 필터링|".parent::filter($msg);; HTML 태그 필터링 이때 처리하지 않고 텍스트만 추가하세요.
}
}
// 민감한 단어 필터링
class SensitiveFilter extends MessageBoardDecorator
{
public function __construct($handler)
{
parent::__construct($handler);
}
공용 함수 filter($msg)
{
return "민감한 단어 필터링|".parent::filter ($msg) ; // 민감한 단어를 필터링하려면 지금 처리하지 않고 텍스트만 추가하세요.
}
}
$obj = new HtmlFilter(new SensitiveFilter(new MessageBoard())); >echo $ obj->filter("데코레이션 모드를 꼭 배워보세요!
")
위 내용은 dvd.taiwan-sex.com의 내용을 포함하여 dvd.taiwan-sex.com PHP 디자인 모드 Decorator 장식 모드를 소개한 내용입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.