a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Java > 正文

java設計模式之組合模式

2019-11-11 07:54:16
字體:
來源:轉載
供稿:網(wǎng)友

組合模式:允許你將對象組合成樹形結構來表現(xiàn)“整體/部分”層次結構。組合能讓客戶以一致的方式處理個別對象以及對象組合。

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

抽象類Component代碼實現(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類代碼實現(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類代碼實現(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é)點:"+name); for(Component component : list){ component.eachChild(); } }}

Client類代碼實現(xiàn):

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

運行結果:

節(jié)點:根節(jié)點節(jié)點:左子節(jié)點葉節(jié)點:左葉節(jié)點1葉節(jié)點:左葉節(jié)點2節(jié)點:右子節(jié)點
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: av网站在线免费观看 | 精品国产乱码久久久久久蜜柚 | 青青青草视频在线 | 在线观看黄av | 成人在线免费观看 | 久久精品毛片 | 最新中文字幕第一页 | 国产精品永久 | 久久国精品 | 国产精品久久久麻豆 | 日产精品久久久一区二区 | 一区二区三区视频免费在线观看 | 国产精品久久久久久久久免费 | 五月av| 日韩成人三级 | 国产成人精品白浆久久69 | 97av视频 | 国产一级视频在线观看 | 日韩成年视频 | 午夜精品久久久久99蜜 | 中国女人黄色大片 | 国产日日干| 在线二区| 亚洲人成人一区二区在线观看 | 99re在线| 99精品九九| 国产在线精品一区二区三区 | 一区二区免费看 | 超碰在线看 | 天天色天天色 | 这里有精品在线视频 | 黄色影视在线免费观看 | 污网站在线播放 | 亚洲一级黄色片子 | 三级黄视频在线观看 | 欧美日韩电影一区 | 国产精品免费看 | 久草免费在线色站 | 91精品国产91久久久久久不卡 | 一区二区三区四区av | 国产小视频在线观看 |