>  기사  >  백엔드 개발  >  PHP 디자인 패턴의 조합 모드 및 대소문자 공유

PHP 디자인 패턴의 조합 모드 및 대소문자 공유

小云云
小云云원래의
2018-03-12 14:56:261391검색

컴포지션 패턴을 사용하면 클라이언트는 개별 객체뿐만 아니라 복합 객체도 일관된 방식으로 처리할 수 있습니다. 조합 모드를 사용하면 클라이언트는 구성 파일을 수정하는 것처럼 간단하게 재귀 작업을 완료할 수 있으므로 클라이언트가 논리적으로 생각할 필요가 없습니다. 개체를 트리 구조로 그룹화하여 '부분-전체' 계층 구조를 나타냅니다.

PHP 사례:

탐색 디렉터리 추가 및 삭제:

header("Content-type:text/html; charset=utf-8");
abstract class Component {
abstract function addNode(Component $obj);
abstract function removeNode(Component $obj);
abstract function show($str);
}
class Branch extends Component {
public $name='';
public $childNode = array();
public function __construct($name)
{
$this->name = $name;
}
public function addNode(Component $obj) {
// $this->childNode[] = $obj;
array_push($this->childNode,$obj);
}
public function removeNode(Component $obj) {
$key = array_search($obj, $this->childNode);
unset($this->childNode[$key]);
}
public function show($str="") {
echo $this->name."<br>";
$str.=" |- ";
foreach ($this->childNode as $val) {
echo $str;
$val->show($str);
}
}
}
class Leaf extends Component {
public $name;
public function __construct($name) {
$this->name = $name;
}
 function addNode(Component $obj) {
 return false;
 }
 function removeNode(Component $obj) {
 return false;
 }
 function show($str="") {
 echo $this->name."<br>";
 }
}
$branch1 = new Branch("家电类");
$leaf11 = new Leaf("电饭煲");
$leaf12 = new Leaf("电冰箱");
$leaf13 = new Leaf("洗衣机");
$branch1->addNode($leaf11);
$branch1->addNode($leaf12);
$branch1->addNode($leaf13);
$branch2 = new Branch("电脑类");
$branch21 = new Branch("台式机");
$branch22 = new Branch("笔记本");
$leaf221 = new Leaf("华硕");
$leaf222 = new Leaf("联想");
$leaf223 = new Leaf("华为");
$leaf224 = new Leaf("华夏");
$branch22->addNode($leaf221);
$branch22->addNode($leaf222);
$branch22->addNode($leaf223);
$branch22->addNode($leaf224);
$branch2->addNode($branch21);
$branch2->addNode($branch22);
$branch1->addNode($branch2);
$branch1->show();

관련 권장 사항:

관련 권장 사항:

일반적인 PHP 디자인 패턴 공유

PHP 디자인 패턴의 서비스 로케이터 패턴 예에 대한 자세한 설명

PHP 디자인 패턴 중 빌더 패턴에 대한 자세한 설명

PHP 디자인 패턴 중 관찰자 패턴에 대한 자세한 설명

php 튜토리얼: PHP 디자인 패턴 서문

위 내용은 PHP 디자인 패턴의 조합 모드 및 대소문자 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.