設計模式 組合模式

2021-10-01 13:22:44 字數 2256 閱讀 6181

<?php

/**

* 組合模式

* * 將物件組合成樹形結構以表示"部分-整體"的層次結構,使得客戶對單個物件和復合物件的使用具有一致性

*/abstract

class

menucomponent

public

function

remove

($component

)public

function

getname()

public

function

geturl()

public

function

display()

}class

menu

extends

menucomponent

public

function

add(

$component

)public

function

remove

($component

)public

function

display()

}}class

item

extends

menucomponent

public

function

display()

}class

client

public

function

setmenu

($menu

)public

function

displaymenu()

}// 例項一下

// 人

// 班級

$submenu1

=new

menu

("sub menu1");

$submenu1

->

add(

$item1);

$submenu1

->

add(

$item2);

$submenu2

=new

menu

("sub menu2");

$submenu2

->

add(

$item3);

$submenu2

->

add(

$item4);

$submenu3

=new

menu

("sub menu3");

$submenu3

->

add(

$item3);

$submenu3

->

add(

$item4);

// 所有班級

$allmenu

=new

menu

("all menu");

$allmenu

->

add(

$submenu1);

$allmenu

->

add(

$submenu2);

$allmenu

->

add(

$submenu3);

// 列印所有班級

$objclient

=new

client

($allmenu);

$objclient

->

displaymenu()

;// 列印第2 班級

$objclient

->

setmenu

($submenu2);

$objclient

->

displaymenu()

;

組合模式 設計模式 組合模式

1.需求分析 假設要給乙個大公司做辦公管理系統,公司有人力資源部 財務部等,然後公司在其他城市還有分公司,分公司也有自己的人力資源部 財務部等,要求總公司 分公司以及各部分成樹狀結構管理。要完成這麼乙個系統,為了有乙個更好的設計,方便開發的展開,就需要了解乙個設計模式 組合模式。2.定義 將物件組合...

設計模式 組合模式 組合模式使用

目錄 組合模式概括 組合模式使用場景 定義 將物件組合成樹形結構以表示 部分 整體 的層次結構 作用 使客戶端對單個物件和組合物件保持一致的處理方式 使用場景 1.希望客戶端可以忽略組合物件與單個物件的差異時 2.處理乙個樹形結構時 優點 清楚的定義分層次的複雜物件,表示物件的全部或部分層次 讓客戶...

設計模式 組合設計模式

組合模式 composite pattern 又稱部分整體模式,用於把一組相似的物件當做乙個單一的物件,組合模式依據樹形來組合物件,用來表示部分以及整體層次,為結構型設計模式,它建立來物件組的樹形結構。意圖 將物件組合成樹形結構以表示 部分 整體 的結構層次,組合模式使得使用者對單個物件和組合物件的...