第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

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

標(biāo)簽:
Java JavaScript C++

这标题格式是不是要该一下啊,我去,要是个字符才可以。。。
通用代码,我是引用了”设计模式之禅“,这也是自己对这本书的内容的总结。谢谢阅读。


组合模式的定义如下:
将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性
再本人看来,组合模式就是把类A和类B的共同部分抽象出来形成接口。对于树形结构(如二叉树形式的)很合适。恩,就是这么简单的模式,说不定自己就在用了。

通用代码:
//抽象部分
public abstract class Componet
{
//添加抽象的功能。
public void doSomething(){}
}
//树枝构件,此处就是右子树
public class Composite extends Component
{
private ArriayList<Component> componentArrayList=new ArrayList<Component>();
public void add(Component componet)
{
this.componentArrayList.add(componet);
}
public void remove(Component component)
{
this.componentArrayList.remove(component);
}
public ArrayList<Component> getChidren()
{
return this.componentArrayList;
}
}
//树叶结构,可以看做是左子树。一般左子树是抽象后的最小的单位。
public class Leaf extends Component
{
//覆写父类的方法,添加自己的代码
public void doSomething(){}
}
组合模式的优点

  1. 一颗树形机构的所有节点都是Component,局部和整体对调用者就是说没有任何区别。
    2.节点可以自由增加,这很容易看出来,只要确定了左右节点的位置,就可以按部就班的继承就可以了。
    组合模式的缺点:
    1.与依赖倒置原则冲突,可以想象的出,如果要用Leaf类必须在主类里初始化,这就是高层对底层的依赖。高层和底层应该都依赖他们的接口,这才是面向对象编程。不过对于真正的组合模式,这不是问题。因为我们一般是使用关系型数据库实现数据的输入。
    组合模式的使用场景:
    1.维护和展示部分关系的场景:如文件和文件夹管理。
    2.树形结构的一定要用了。
點(diǎn)擊查看更多內(nèi)容
3人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消