組合模式多用于樹形菜單,文件、文件夾之類的管理,把一組類似的對(duì)象看作一個(gè)對(duì)象,例如文件夾可以包含文件夾和文件,但是把文件夾看作一個(gè)對(duì)象。
為蒙城等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及蒙城網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、蒙城網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!模式UML圖代碼示例(C#)//葉子節(jié)點(diǎn),繼承Node類
class LeafNode : Node
{
public LeafNode(string p_name) : base(p_name) { }
}
//分支節(jié)點(diǎn),繼承Node類
class BranchNode : Node
{
public ListchildNodes = new List();
public BranchNode(string p_name) : base(p_name) { }
public void Add(Node p_node)
{
childNodes.Add(p_node);
}
public void Remove(Node p_node)
{
childNodes.Remove(p_node);
}
}
//節(jié)點(diǎn)抽象類,所有節(jié)點(diǎn)繼承該類
public abstract class Node
{
public string name;
public string content;
public Node(string p_name)
{
name = p_name;
}
}
//測(cè)試代碼
public void Test()
{
BranchNode root = new BranchNode("Root");
BranchNode node1 = new BranchNode("Node1");
BranchNode node2 = new BranchNode("Node2");
BranchNode node3 = new BranchNode("Node3");
LeafNode node4 = new LeafNode("Node4");
LeafNode node5 = new LeafNode("Node5");
LeafNode node6 = new LeafNode("Node6");
root.Add(node1);
root.Add(node2);
node1.Add(node4);
node2.Add(node3);
node3.Add(node5);
node3.Add(node6);
Draw(root, 1);
}
private void Draw(Node p_node, int p_depth)
{
string v_str = "";
for (int i = 0; i< p_depth; i++) v_str += "|";
Console.WriteLine(v_str + p_node.name);
if (p_node is BranchNode)
{
foreach (Node n in ((BranchNode)p_node).childNodes)
{
Draw(n, p_depth + 1);
}
}
}
代碼解說(shuō)我們這里體現(xiàn)在BranchNode類中的childNodes屬性,組合模式在于把擁有子節(jié)點(diǎn)的BranchNode和沒(méi)有子節(jié)點(diǎn)的LeafNode都看作一個(gè)單獨(dú)的對(duì)象,都是Node。LeafNode就類似于文件,而BranchNode就類似于文件夾,文件中不能再包含文件或文件夾,但是文件夾下可以包含文件夾和文件。
如果這篇文章對(duì)你有幫助,請(qǐng)給作者點(diǎn)個(gè)贊吧!
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧