购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.6 组合模式的优点

大B:“说说组合模式的优点吧。”

小A:“组合模式定义了包含基本对象和组合对象的类层次结构。基本对象可以被组合成更复杂的组合 对象,而这个组合对象又可以被组合,这样不断地递归下去,客户代码中,任何用到基本对象的 地方都可以使用组合对象了。 用户不用关心到底是处理一个叶节点还是处理一个组合组件, 也就是用不着为定义组合而写一些选择判断语句了,简单地说就是组合模式让客户可以一致地使用 组合结构和单个对象。”

大B:“嗯,你知道什么是透明方式,什么是安全方式,及他们的好处。”

小A:“ 透明方式也就是说在Component中声明所有用来管理子对象的方法中,其中包括Add、Remove 等。这样实现Component接口的所有子类都具备了Add和Remove。这样做的好处就是叶节点 和枝节点对于外界没有区别,它们具备完全一致的行为接口。但问题也很明显,因为Leaf 类本身不具备Add()、Remove()方法的功能,所以实现它是没有意义的。

安全方式也就是在Component接口中不去声明Add和Remove方法,那么子类的Leaf也不需要去实现它,而是在 Composite声明所有用来管理子类对象的方法。不过由于不透明,所以树叶和树枝将不具有相同的接口, 客户端的调用需要做相应的判断,带来了不便 。” hRE6W6rCcED18sz+6GWkEmGxuzZZzja8B+JV7NWnyHRzy+AJkGLySkXgLEYT/Wqk

点击中间区域
呼出菜单
上一章
目录
下一章
×