学习设计模式-组合模式

说明:(定义)将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。(关键点提现层次结构但他们有一致性操作,它有透明方式和安全方式,区别在于透明方式新增/删除子节点的方法有没有,有就是透明方式,没有则为安全方式,通常用透明方式。)

需求:现在对文件夹枝节点杀毒,文件夹枝节点里面有文件叶子.txt,文件夹2,文件夹2里面有文件叶子.png。

解决方式:

a.      定义一个组合抽象类,定义新增/删除子节点方法,定义一个杀毒的方法(可以是其他一致的操作);(文件/文件夹抽象)

b.      定义一个叶子类(继承组合抽象类),空实现新增/删除子节点方法,重写叶子的显示方法;(叶子.txt、叶子.png,没有更下级的文件了)

c.      定义一个枝节点类(继承组合抽象类),声明一个子节点集合,重写新增/删除子节点方法,方法内将传入的节点放入子节点集合,重写显示方法,方法内for循环子节点集合且将传入的层数+1继续调用子节点的显示方法;(文件夹2)

d.      客户端根据需求实例化枝节点还是叶子,同时设置他们的层级关系,最后调用杀毒方法对该文件夹进行杀毒。

需求变更:新增一个文件夹杀毒

解决方式:

客户端新增一个实例化叶子对象,设置它与树之间的关系。

类图:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多懂一些

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值