首頁 後端開發 php教程 compose php設計模式 Composite 組合模式

compose php設計模式 Composite 組合模式

Jul 29, 2016 am 08:45 AM
compose

複製程式碼程式碼如下:


/** 
* 組合模式 

* 將物件組合成樹形結構以表示"部分-整體"的層次結構,使得客戶對單一物件和複合物件的使用具有一致性 
*/ 
公用函數add($component){}
公用函式刪除($component){}
公用函數getName(){}
公用函數getUrl(){}
public function display(){}
}
class Menu extends MenuComponent
{
private $_items = array();
私有$_name = null;
公用函數__ $name)
{
$this->_name = $name;
}
public function add($component)
{
$this->_items[] = $component ;
}
公用函數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;
私有$_url = null;
公用函數__construct($name,$url)
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
$this->_name = $name;
$this->_url = $url;
}
public function display()
{
echo $this->_name."#" .$this->_url."
";
}
}
類別客戶端
{
private $_menu = null;
公共函數__construct($ menu)
{
$this->_menu = $menu;
}
public function setMenu($menu)
{
$this->_menu = $menu;
{
$this->_menu = $menu;
}
public function displayMenu()
{
$this->_menu->display();
}
}
//實例一下
//建立選單
$subMenu1 = new Menu("sub menu1");

$subMenu2 = new Menu("子選單2");

$subMenu3 = new Menu("子選單3");

$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("所有選單" ); $allMenu->add($subMenu1); $allMenu->add($subMenu2); $allMenu->add($subMenu3); $objClient = 新客戶端($allMenu); $objClient->displayMenu(); $objClient->setMenu($subMenu2); $objClient->displayMenu(); 以上就介紹了compose php設計模式 Composite組合模式,包含了compose方面的內容,希望對PHP教學有興趣的朋友有幫助。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何利用React和Docker Compose部署複雜的前後端應用 如何利用React和Docker Compose部署複雜的前後端應用 Sep 26, 2023 am 10:17 AM

如何利用React和DockerCompose部署複雜的前後端應用概述在現代軟體開發中,使用容器化技術部署應用程式已經成為一種主流和建議的做法。其中,Docker是一種流行的容器化部署工具,React是一個強大的JavaScript庫,用於建立使用者介面。本文將介紹如何使用React和DockerCompose來部署複雜的前後端應用。一、準備工作在開始前

使用Docker Compose輕鬆建置PHP開發環境 使用Docker Compose輕鬆建置PHP開發環境 Oct 12, 2023 am 11:36 AM

使用DockerCompose輕鬆建置PHP開發環境隨著時代的發展,開發環境建置越來越快速有效率。而DockerCompose作為一種容器編排工具,可以讓我們輕鬆地配置和管理多個Docker容器,從而快速建立PHP開發環境。本文將介紹如何使用DockerCompose建構PHP開發環境,並提供具體的程式碼範例。準備工作首先,我們需要安裝Docker和Doc

如何使用Docker的Compose實現nginx負載平衡 如何使用Docker的Compose實現nginx負載平衡 May 11, 2023 pm 04:13 PM

以docker的網路管理,容器的ip設定為基礎知識實作nginx負載平衡查看所有docker網路dockernetworkls/*networkidnamedriverscopeb832b168ca9abridgebridgelocal373be82d3a6acomposetest_defaultbridgelocala360425082c468/d時,do

使用Docker Compose、Nginx和MariaDB建立高可用性的PHP應用程式集群 使用Docker Compose、Nginx和MariaDB建立高可用性的PHP應用程式集群 Oct 12, 2023 am 08:23 AM

使用DockerCompose、Nginx和MariaDB來建構高可用性的PHP應用程式叢集引言:隨著網路的普及,Web應用程式的開發和部署變得更加複雜。為了提高Web應用程式的可用性和可擴展性,許多開發者開始使用容器化技術來建立高可用性的應用程式叢集。本文將介紹如何使用DockerCompose、Nginx和MariaDB來建構一個高可用性的PHP應用

怎麼使用Docker Compose實現nginx負載平衡 怎麼使用Docker Compose實現nginx負載平衡 May 15, 2023 pm 09:37 PM

以docker的網路管理,容器的ip設定為基礎知識實作nginx負載平衡查看所有docker網路dockernetworkls/*networkidnamedriverscopeb832b168ca9abridgebridgelocal373be82d3a6acomposetest_defaultbridgelocala360425082c4625082c46時,do

docker compose如何安裝redis集群 docker compose如何安裝redis集群 May 28, 2023 am 10:07 AM

一、redis設定資訊範本檔名:redis-cluster.tmpl#redis埠port${PORT}#redis存取密碼requirepass123456#redis存取Master節點密碼masterauth123456#關閉保護模式protected-modeno#開啟叢集集集節點設定cluster-config-filenodes.conf#逾時cluster-node-timeout5000#叢集節點IPhost模式為宿主機IP#cluste

透過Docker Compose、Nginx和MariaDB實現PHP應用程式的持續交付 透過Docker Compose、Nginx和MariaDB實現PHP應用程式的持續交付 Oct 12, 2023 pm 12:06 PM

透過DockerCompose、Nginx和MariaDB實現PHP應用程式的持續交付概述:隨著雲端運算和容器化技術的迅速發展,越來越多的應用程式開始採用容器化來實現快速交付和部署。本文將介紹如何使用DockerCompose、Nginx和MariaDB來建立一個簡單的PHP應用程序,並實現持續交付的過程。同時,我們將給出具體的程式碼範例,幫助讀者更好地理解

Docker Compose、Nginx和MariaDB的黃金配方:高可用PHP應用程式架構 Docker Compose、Nginx和MariaDB的黃金配方:高可用PHP應用程式架構 Oct 12, 2023 am 09:25 AM

DockerCompose、Nginx和MariaDB的黃金配方:高可用PHP應用程式架構[引言]在當今的網路時代,高可用性對於每個網站和應用程式都是至關重要的。為了實現這一目標,我們需要建立一個穩定、可擴展和高效能的架構。本文將介紹如何使用DockerCompose、Nginx和MariaDB來建立一個高可用的PHP應用程式架構,並提供具體的程式碼範例

See all articles