【程序员】看了这篇你将彻底了解组合模式( 八 )
本文插图
相关扩展
组合模式中的递归:指的是对象递归组合 , 对象本身的递归 , 在设计上称为递归关联 , 是对象关联关系的一种 。 理论上是没有层次限制的 。
最大化Component定义:在透明性的组合模式中 , 能够看出组合对象和叶子对象的方法都被定义在了Component中 , 这其实是与类的设计原则相冲突的 , 一个父类应该只定义那些子类有意义的操作 , 而Component很多方法对于叶子对象没有意义 。 解决方法就是为这些方法提供默认实现 , 或者抛出不支持该功能的异常 , 如果子类需要这个方法就覆盖实现 , 不需要就不需要管 。
父组件引用:在上面的示例都是从上到下的引用 , 也就是父到子的引用 , 而很多时候我们需要从下到上的引用 , 还是上面的例子 , 如果想要从普通的程序员找到他的小组长或者部门经理该怎么做呢?解决方法是在保持父组件到子组件引用的基础上 , 再添加保持子组件到父组件的引用 。 在Component中定义对父组件的引用 , 组合对象和叶子对象都继承这个引用 。 在组合对象添加子组件对象的时候 , 为子组件设置父组件引用 , 在组合对象删除一个子组件对象的时候 , 再重新设置相关子组件的父组件的引用 。 把这些实现到composite中 , 这样所有的子类都可以继承到这些方法 , 从而更容易的维护子组件到父组件的引用 。 由于篇幅关系 , 这里不再写代码 。
环状引用:指的是对象之间的引用形成了一个环 , 一个对象经过若干次引用之后又包含了这个对象本身 , 就构成了一个环状引用 , 如A包含B,B包含C,C包含A.通常在设计组合模式时需要避免这种情况 , 否则容易出现死循环 。 但如果真的需要环状引用 , 就需要构建环状引用 , 并提供相应的检测和处理 。
声明:本文为作者投稿 , 版权归其所有 。
本文插图
本文插图
?AI 世界的硬核之战 , Tengine 凭什么成为最受开发者欢迎的主流框架?
?说了这么多 5G , 最关键的技术在这里
?360金融新任首席科学家:别指望AI Lab做成中台
?AI图像智能修复老照片 , 效果惊艳到我了
?程序员内功修炼系列:10 张图解谈 Linux 物理内存和虚拟内存
【【程序员】看了这篇你将彻底了解组合模式】?当 DeFi 遇上 Rollup , 将擦出怎样的火花?
- 小谢娱乐哦引来广大网友狂点赞,直呼炸天,程序员用Java实现扫雷小游戏
- #作文#这届小学生脑路清奇,贡献了一波神作文,老师看了连呼佩服佩服
- 5G芯片高通骁龙865潜力有多大?看了这些就知道
- Python爱好者社区漫画 | 程序员逆天改命
- 小猪搞机看了这六点,让你了解 iQOO Neo3为什么值得入手!
- 零度科技汇网友:看了都想买,这几款搭载骁龙865处理器的5G手机性价比高
- 35岁程序员被电信云、华为和阿里同时录取,看到薪资比较后,酸了
- 零度科技汇这几款搭载骁龙865处理器的5G手机性价比高,网友:看了都想买
- 扫地机器人哪个牌子好?看完这篇选购攻略就知道了
- 卟科技还敢小看国产手机厂商吗?,国产双雄攻霸欧洲市场!苹果看了胆颤