Rumah pembangunan bahagian belakang tutorial php compose php设计模式 Composite 组合模式

compose php设计模式 Composite 组合模式

Jul 29, 2016 am 08:45 AM
compose

复制代码 代码如下:


/** 
* 组合模式 

* 将对象组合成树形结构以表示"部分-整体"的层次结构,使得客户对单个对象和复合对象的使用具有一致性 
*/ 
abstract class MenuComponent 

public function add($component){}
public function remove($component){}
public function getName(){}
public function getUrl(){}
public function display(){}
}
class Menu extends MenuComponent
{
private $_items = array();
private $_name = null;
public function __construct($name)
{
$this->_name = $name;
}
public function add($component)
{
$this->_items[] = $component;
}
public function remove($component)
{
$key = array_search($component,$this->_items);
if($key !== false) unset($this->_items[$key]);
}
public function display()
{
echo "-- ".$this->_name." ---------
";
foreach($this->_items as $item)
{
$item->display();
}
}
}
class Item extends MenuComponent
{
private $_name = null;
private $_url = null;
public function __construct($name,$url)
{
$this->_name = $name;
$this->_url = $url;
}
public function display()
{
echo $this->_name."#".$this->_url."
";
}
}
class Client
{
private $_menu = null;
public function __construct($menu)
{
$this->_menu = $menu;
}
public function setMenu($menu)
{
$this->_menu = $menu;
}
public function displayMenu()
{
$this->_menu->display();
}
}
// 实例一下
// 创建menu
$subMenu1 = new Menu("sub menu1");
$subMenu2 = new Menu("sub menu2");
$subMenu3 = new Menu("sub menu3");
$item1 = new Item("163","www.163.com");
$item2 = new Item("sina","www.sina.com");
$subMenu1->add($item1);
$subMenu1->add($item2);
$item3 = new Item("baidu","www.baidu.com");
$item4 = new Item("google","www.google.com");
$subMenu2->add($item3);
$subMenu2->add($item4);
$allMenu = new Menu("All Menu");
$allMenu->add($subMenu1);
$allMenu->add($subMenu2);
$allMenu->add($subMenu3);
$objClient = new Client($allMenu);
$objClient->displayMenu();
$objClient->setMenu($subMenu2);
$objClient->displayMenu();

以上就介绍了compose php设计模式 Composite 组合模式,包括了compose方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan aplikasi bahagian hadapan dan belakang yang kompleks menggunakan React dan Docker Compose Cara menggunakan aplikasi bahagian hadapan dan belakang yang kompleks menggunakan React dan Docker Compose Sep 26, 2023 am 10:17 AM

Gambaran keseluruhan cara untuk menggunakan aplikasi bahagian hadapan dan belakang yang kompleks menggunakan React dan Docker Compose Dalam pembangunan perisian moden, menggunakan teknologi kontena untuk menggunakan aplikasi telah menjadi amalan arus perdana dan disyorkan. Antaranya, Docker ialah alat penggunaan kontena yang popular, dan React ialah perpustakaan JavaScript yang berkuasa yang digunakan untuk membina antara muka pengguna. Artikel ini akan memperkenalkan cara menggunakan React dan DockerCompose untuk menggunakan aplikasi bahagian hadapan dan belakang yang kompleks. 1. Persediaan sebelum bermula

Gunakan Docker Compose untuk membina persekitaran pembangunan PHP dengan mudah Gunakan Docker Compose untuk membina persekitaran pembangunan PHP dengan mudah Oct 12, 2023 am 11:36 AM

Gunakan DockerCompose untuk membina persekitaran pembangunan PHP dengan mudah Dengan perkembangan zaman, persekitaran pembangunan menjadi semakin pesat dan cekap. Sebagai alat orkestrasi kontena, DockerCompose membolehkan kami mengkonfigurasi dan mengurus berbilang bekas Docker dengan mudah untuk membina persekitaran pembangunan PHP dengan cepat. Artikel ini akan memperkenalkan cara menggunakan DockerCompose untuk membina persekitaran pembangunan PHP dan menyediakan contoh kod khusus. Penyediaan Pertama, kita perlu memasang Docker dan Doc

Cara menggunakan Docker's Compose untuk melaksanakan pengimbangan beban nginx Cara menggunakan Docker's Compose untuk melaksanakan pengimbangan beban nginx May 11, 2023 pm 04:13 PM

Gunakan pengurusan rangkaian docker dan tetapan ip kontena sebagai pengetahuan asas untuk melaksanakan pengimbangan beban nginx Lihat semua rangkaian docker dockernetworkls/*networkidnamedriverscopeb832b168ca9abridgebridgelocal373be82d3a6acomposetest_defaultbridgelocala360425082c4hosthostlocal082c4hosthostlocal0082c4hosthostlocal082c4hosthostlocal082c4hosthostlocal0082c4hosthostlocal082c4hosthostlocal082c4hosthostlocal082c4hosthostlocal082c4hosthostlocal082c4hosthostlocal082c4hosthostlocal15/default. artikel sebelum ini semasa memperkenalkan mengarang, lakukan

Bina kelompok aplikasi PHP yang sangat tersedia menggunakan Docker Compose, Nginx dan MariaDB Bina kelompok aplikasi PHP yang sangat tersedia menggunakan Docker Compose, Nginx dan MariaDB Oct 12, 2023 am 08:23 AM

Bina kelompok aplikasi PHP yang sangat tersedia menggunakan DockerCompose, Nginx dan MariaDB Pengenalan: Dengan populariti Internet, pembangunan dan penggunaan aplikasi web telah menjadi lebih kompleks. Untuk meningkatkan ketersediaan dan kebolehskalaan aplikasi web, banyak pembangun telah mula menggunakan teknologi kontena untuk membina kelompok aplikasi ketersediaan tinggi. Artikel ini akan memperkenalkan cara menggunakan DockerCompose, Nginx dan MariaDB untuk membina aplikasi PHP yang sangat tersedia

Cara menggunakan Docker Compose untuk melaksanakan pengimbangan beban nginx Cara menggunakan Docker Compose untuk melaksanakan pengimbangan beban nginx May 15, 2023 pm 09:37 PM

Gunakan pengurusan rangkaian docker dan tetapan ip kontena sebagai pengetahuan asas untuk melaksanakan pengimbangan beban nginx Lihat semua rangkaian docker dockernetworkls/*networkidnamedriverscopeb832b168ca9abridgebridgelocal373be82d3a6acomposetest_defaultbridgelocala360425082c4hosthostlocal082c4hosthostlocal0082c4hosthostlocal082c4hosthostlocal082c4hosthostlocal0082c4hosthostlocal082c4hosthostlocal082c4hosthostlocal082c4hosthostlocal082c4hosthostlocal082c4hosthostlocal082c4hosthostlocal15/default. artikel sebelum ini semasa memperkenalkan mengarang, lakukan

Cara karang buruh pelabuhan memasang kluster redis Cara karang buruh pelabuhan memasang kluster redis May 28, 2023 am 10:07 AM

1. Nama fail templat maklumat konfigurasi Redis: redis-cluster.tmpl#redis port port${PORT}#redis access password requirepass123456#redis access Master nod password masterauth123456#Close protected mode protected-modeno#Enable cluster-enabledyes#Cluster nod Konfigurasikan cluster-config-filenodes.conf#timeout cluster-node-timeout5000#cluster nod Mod IP hos ialah IP hos#cluste

Penghantaran aplikasi PHP yang berterusan dengan Docker Compose, Nginx dan MariaDB Penghantaran aplikasi PHP yang berterusan dengan Docker Compose, Nginx dan MariaDB Oct 12, 2023 pm 12:06 PM

Gambaran keseluruhan penghantaran berterusan aplikasi PHP melalui DockerCompose, Nginx dan MariaDB: Dengan perkembangan pesat teknologi pengkomputeran awan dan kontena, semakin banyak aplikasi mula menerima pakai kontena untuk mencapai penghantaran dan penggunaan yang pantas. Artikel ini akan memperkenalkan cara menggunakan DockerCompose, Nginx dan MariaDB untuk membina aplikasi PHP mudah dan melaksanakan proses penghantaran berterusan. Pada masa yang sama, kami akan memberikan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik

Bagaimana untuk menerbitkan projek springboot menggunakan imej docker-compose Bagaimana untuk menerbitkan projek springboot menggunakan imej docker-compose May 11, 2023 am 10:13 AM

Pengenalan Projek Docker-Compose ialah projek sumber terbuka rasmi Docker, bertanggungjawab untuk merealisasikan orkestrasi pantas kumpulan kontena Docker. Karang membenarkan pengguna mentakrifkan satu set bekas aplikasi yang berkaitan sebagai projek melalui fail templat docker-compose.yml (format YAML) yang berasingan. Projek Docker-Compose ditulis dalam Python dan memanggil API yang disediakan oleh perkhidmatan Docker untuk mengurus bekas. Oleh itu, selagi platform yang anda kendalikan menyokong DockerAPI, anda boleh menggunakan Karang untuk pengurusan orkestrasi. Docker-Compose membahagikan bekas terurus kepada

See all articles