设计模式——组合模式

一、概念:组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。

二、UML示意图:

 

 Leaf和Composite的关系是单个对象和组合对象的关系,他们都继承于Component抽象类,所以都有Add、Remove和Operation方法,所以客户端对于Leaf和Composite对象能使用一致的方法,不需要区分他们是组合还是单个对象。

三、优缺点

优点:

  • 客户端可以不需要区分自己在操作的是组合对象还是单个对象。简化了客户端的代码
  • 即使是有不同的类Leaf对象(也就是同样都是单个对象,但是却不是不同的类),也只需要新增一个继承自Component类的类就行了,不需要修改源代码,符合开闭原则。

缺点:

  • 设计较复杂,客户端需要花更多时间理清类之间的层次关系
posted @ 2020-03-19 19:25  夜里寻星  阅读(220)  评论(0)    收藏  举报