91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java組合模式的結果和適用的場景

發布時間:2021-09-04 11:19:39 來源:億速云 閱讀:120 作者:chen 欄目:大數據

本篇內容主要講解“java組合模式的結果和適用的場景”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“java組合模式的結果和適用的場景”吧!

組合(Composite)模式的定義:有時又叫作部分-整體模式,它是一種將對象組合成樹狀的層次結構的模式,用來表示“部分-整體”的關系。組合模式使得客戶端代碼可以一致地處理單個對象和組合對象,無須關心自己處理的是單個對象,還是組合對象,這簡化了客戶端代碼;

模式結構

  • 頂層抽象:樹枝或者樹葉的抽象接口

  • 樹枝:是組合中的葉節點對象,它沒有子節點,用于實現抽象構件角色中 聲明的公共接口。

  • 樹葉:是組合中的分支節點對象,它有子節點。它實現了抽象構件角色中聲明的接口,它的主要作用是存儲和管理子部件

源碼導讀

組合模式分為透明模式和安全模式;透明模式是在頂層抽象中聲明了所有管理子對象的方法,樹葉節點點和樹枝節點對于客戶端來說沒有區別。安全模式是在頂層抽象中只聲明葉子和樹枝公有的抽象方法,而將對葉子和樹枝的管理方法實現到對應的類中,因此客戶端就需要區分該節點是樹枝還是葉子從而調用對應的方法。

對組合模式來說,List Set等這些集合類屬于不那么嚴格的組合模式。由于沒有找到太好的源碼,因此我在這里分別對透明模式和安全模式組合說明

透明模式:

public abstract class Component{
    private String name;
    public Component(string name)
    {
        this.name = name;
    }
 
    public abstract boolean Add(Component component);
 
    public abstract boolean Remove(Component component);
 
    public String getName(){
        return name;
    }
}

public class Branch extend Component{
    private List<Component> tree=new ArrayList<>();
    
    public Branch(String name){
        super(name);
    }
    
    public boolean add(Componet component){
        tree.add(component);
        return true;
    }
    
    public boolean Remove(Component component){
        tree.remove(component);
        return true;
    }
}

public class Leaf extend Component{
    
     public Leaf(String name){
        super(name);
    }
     
     public boolean add(Componet component){
        return false;
    }
    
    public boolean Remove(Component component){
        return false;
    }
    
}

安全模式:

public abstract class Component{
    private String name;
    public Component(string name)
    {
        this.name = name;
    }
 
    public String getName(){
        return name;
    }
    
    
}

public class Branch extend Component{
    private List<Component> tree=new ArrayList<>();
    
    public Branch(String name){
        super(name);
    }
    
    public boolean add(Componet component){
        tree.add(component);
        return true;
    }
    
    public boolean Remove(Component component){
        tree.remove(component);
        return true;
    }
    
    public List<Component> getTree(){
        return tree;
    }
}

public class Leaf extend Component{
    
     public Leaf(String name){
        super(name);
    }
    
    
}

組合模式適用的場景為需要表述一個系統(組件)的整體與部分的結構層次的場合;組合模式可對客戶端隱藏組合對象和單個對象的不同,以便客戶端可以使用用統一的接口使用組合結構中的所有對象,對于該類場合也適用于組合模式

到此,相信大家對“java組合模式的結果和適用的場景”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鄂托克旗| 泸西县| 永康市| 台东县| 大庆市| 台南县| 平凉市| 鱼台县| 邵东县| 缙云县| 恭城| 东莞市| 金湖县| 承德市| 府谷县| 荔浦县| 张北县| 获嘉县| 昌宁县| 文安县| 和顺县| 贵溪市| 蒙城县| 鄂州市| 盐城市| 邯郸市| 准格尔旗| 东阿县| 嘉荫县| 汽车| 米泉市| 德昌县| 鹿邑县| 河曲县| 宽城| 聊城市| 平定县| 罗甸县| 广丰县| 河西区| 太湖县|