栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

java设计模式之组合模式

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java设计模式之组合模式

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


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

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

  1. 一颗树形机构的所有节点都是Component,局部和整体对调用者就是说没有任何区别。
    2.节点可以自由增加,这很容易看出来,只要确定了左右节点的位置,就可以按部就班的继承就可以了。
    组合模式的缺点:
    1.与依赖倒置原则冲突,可以想象的出,如果要用Leaf类必须在主类里初始化,这就是高层对底层的依赖。高层和底层应该都依赖他们的接口,这才是面向对象编程。不过对于真正的组合模式,这不是问题。因为我们一般是使用关系型数据库实现数据的输入。
    组合模式的使用场景:
    1.维护和展示部分关系的场景:如文件和文件夹管理。
    2.树形结构的一定要用了。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/233150.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号