麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

java設(shè)計(jì)模式之組合模式

2019-11-14 09:19:34
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

組合模式:允許你將對(duì)象組合成樹(shù)形結(jié)構(gòu)來(lái)表現(xiàn)“整體/部分”層次結(jié)構(gòu)。組合能讓客戶(hù)以一致的方式處理個(gè)別對(duì)象以及對(duì)象組合。

組合模式類(lèi)圖: 這里寫(xiě)圖片描述 Client:客戶(hù)使用Component接口操作組合中的對(duì)象。 Component:Component為組合中的所有對(duì)象定義一個(gè)接口,不管是組合還是節(jié)點(diǎn),Component可以為add(),remove(),eachChild()實(shí)現(xiàn)一些默認(rèn)的行為。 Leaf:葉節(jié)點(diǎn)沒(méi)有孩子。葉節(jié)點(diǎn)通過(guò)實(shí)現(xiàn)Composite支持的操作,定義了組合內(nèi)元素的行為。 Composite:Composite的角色是要定義組件的行為,而這樣的組件具有子節(jié)點(diǎn)。

抽象類(lèi)Component代碼實(shí)現(xiàn):

public abstract class Component { String name; public Component(String name){ this.name = name; } public abstract void Add(Component component); public abstract void remove(Component component); public abstract void eachChild();}

Leaf類(lèi)代碼實(shí)現(xiàn):

public class Leaf extends Component{ public Leaf(String name) { super(name); // TODO Auto-generated constructor stub } @Override public void Add(Component component) { // TODO Auto-generated method stub } @Override public void remove(Component component) { // TODO Auto-generated method stub } @Override public void eachChild() { // TODO Auto-generated method stub System.out.Composite類(lèi)代碼實(shí)現(xiàn):

public class Composite extends Component{ ArrayList<Component> list = new ArrayList<Component>(); public Composite(String name) { super(name); // TODO Auto-generated constructor stub } @Override public void Add(Component component) { // TODO Auto-generated method stub list.add(component); } @Override public void remove(Component component) { // TODO Auto-generated method stub list.remove(component); } @Override public void eachChild() { // TODO Auto-generated method stub System.out.println("節(jié)點(diǎn):"+name); for(Component component : list){ component.eachChild(); } }}

Client類(lèi)代碼實(shí)現(xiàn):

public class Client { public static void main(String[] args){ Component rootComposite = new Composite("根節(jié)點(diǎn)"); Component leftComposite = new Composite("左子節(jié)點(diǎn)"); Component rightComposite = new Composite("右子節(jié)點(diǎn)"); Component leftleaf1 = new Leaf("左葉節(jié)點(diǎn)1"); Component leftleaf2 = new Leaf("左葉節(jié)點(diǎn)2"); leftComposite.Add(leftleaf1); leftComposite.Add(leftleaf2); rootComposite.Add(leftComposite); rootComposite.Add(rightComposite); rootComposite.eachChild(); }}

運(yùn)行結(jié)果:

節(jié)點(diǎn):根節(jié)點(diǎn)節(jié)點(diǎn):左子節(jié)點(diǎn)葉節(jié)點(diǎn):左葉節(jié)點(diǎn)1葉節(jié)點(diǎn):左葉節(jié)點(diǎn)2節(jié)點(diǎn):右子節(jié)點(diǎn)
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美a级毛片 | 日韩视频在线观看免费视频 | 极品销魂一区二区三区 | 国产精品片一区二区三区 | 久久亚洲春色中文字幕久久 | 日韩电影一区二区 | 欧美成人午夜影院 | 欧美精品毛片 | 国产精品免费麻豆入口 | 亚洲国产女同久久 | 欧美日韩精品不卡一区二区三区 | 国产成人精品免费视频大全办公室 | 性欧美xxxx极品摘花 | www.91sp| 国产亚洲精品视频中文字幕 | 蜜桃91麻豆| 中文字幕在线观看精品 | 国产精品久久久久久久久久iiiii | 狼人狠狠干 | 国产一区二区三区在线免费 | 在线亚洲欧美日韩 | 色玖玖综合 | 泰剧19禁啪啪无遮挡 | 免费国产不卡午夜福在线 | 精品在线观看一区 | 日本成人一区二区 | 精品一区二区久久久久久按摩 | 一区二区三区欧美日韩 | 成人精品免费看 | av免费在线观看免费 | av在线免费看网站 | 成年人视频免费看 | 美女黄污视频 | 龙的两根好大拔不出去h | asian超清日本肉体pics | 成人在线a| a视频在线免费观看 | 欧美精品一区自拍a毛片在线视频 | 欧美一级高潮 | 成人国产在线看 | 亚洲天堂ww|