第38章
小A:“组合模式定义了包含基本对象和组合对象的类层次结构。基本对象可以被组合成更复杂的组合对象,而这个组合对象又可以被组合,这样不断地递归下去,客户代码中,任何用到基本对象的地方都可以使用组合对象了。用户不用关心到底是处理一个叶节点还是处理一个组合组件,也就是用不着为定义组合而写一些选择判断语句了,简单地说就是组合模式让客户可以一致地使用组合结构和单个对象。”
大B:“嗯,你知不知道什么是透明方式?什么是安全方式?及他们的好处。”
小A:“透明方式也就是说在Component中声明所有用来管理子对象的方法中,其中包括Add、Remove等。这样实现Component接口的所有子类都具备了Add和Remove。这样做的好处就是叶节点和枝节点对于外界没有区别,它们具备完全一致的行为接口。但问题也很明显,因为Leaf类本身不具备Add、Remove方法的功能,所以实现它是没有意义的。安全方式也就是在Component接口中不去声明Add和Remove方法,那么子类的Leaf也不需要去实现它,而是在Composite声明所有用来管理子类对象的方法。不过由于不透明,所以树叶和树枝将不具有相同的接口,客户端的调用需要做相应的判断,带来了不便。”
大B:“说说组合模式的优点吧!”
其他人正在读 :【从婴儿开始入道】【凡人修仙:从废灵根开始】【凌皓】【华娱璀璨时代】【娱乐:求求了,国家队别欺负人了】【养成系男神:听劝后,我成了顶流】【综漫:这友好交流系统也太友好了】【美漫从渣康学徒开始】【道爷要飞升】【日娱音乐人】【四合院里的火车司机】【怀上渣男死对头的娃后,我杀疯了】【谁让他修仙的!】【亮剑我有红警基地车】【燕歌行 第二部】【周元赵蒹葭】【这个训练家的宝可梦过于跳脱】【从零开始无限进化】【爱的饥渴】【美利坚名利双收】【路人甲心声泄露后被反派全家团宠了】【初唐小闲人】【天下第一萌夫】【速通修仙!】【为了伴侣,这个反派也可以不当】【灯花笑】【每晚都和反派师兄谈心】【野火】【大明厨王:开局征服徐妙云的胃】【枕刀】