问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

组合替代继承

发布网友 发布时间:2023-03-23 18:22

我来回答

1个回答

热心网友 时间:2023-10-15 12:33

HeadFirst设计模式第一章阐述的观点是多用组合,少用继承.
我的理解是适当使用继承的特性,不过度设计.

书上用到的例子
描述鸭子这个对象 假设鸭子都有飞行这个属性

鸭子的实际对象野鸭会飞

鸭子的实际对象玩具鸭不会飞

这样迭代下来会产生一个问题 需要关注的属性太多
每一个派生的鸭子 都需要重写fly方法来确定飞行这个属性
如果鸭子有飞行, 游泳,跑步...属性越多 继承的负担就越重

把鸭子的飞行抽象成一种行为

这样会不会飞可以分别描述
会飞的行为

不会飞的行为

再次描述鸭子的派生鸭子 都只需要动态指定鸭子的组成行为

组合替代继承之后,鸭子的逻辑更加清晰.
维护者只需要分别维护鸭子和鸭子行为的逻辑

组合是has-a关系,继承是is-a关系
未完待续......
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
这是真的黑米还是假的? 牡丹江市区好玩的地方 显卡问题,现在的显卡显存一般都为多少? 现在主流显存是多少?512M5年后会过时吗 主流家用电脑配置家用电脑买什么样配置比较好 现在的电脑显存一般是多少? 安顺万家领秀城怎么样?好不好?值不值得买? 请问下面一道题怎么加标点 花园里 牡丹 月季 玫瑰 芍药 开得美丽极了... 是什么把大地打扮的这么漂亮呢 是雪呀 这两句话怎么写标点符号? 通州有那些私立高中啊 为什么推荐多用组合、少用继承 梦见泥石流追着自己的预兆 拼多多支付分少了怎么办 手机谈话听筒声音低怎么办? 小米2手机什么样保存谈话录音 仁者爱山,智者乐水是什么意思啊? 小米手机丢了对方谈话可以录音 闷郁的解释 沾衣欲时杏花开~作者,朝代 做糟肉的酒糟酸了还能用吗? 步步高vivo手机为什么系统说sd卡正在忙? 为什么内存卡插进手机总显示SD卡正忙 为什么我的手机插上SD卡显示正忙或未插入 春岑的解释 淘宝信誉积分为0,买不了东西,连1元的都买不了。怎么办? 高铁站的充电宝要钱安全吗 充电宝充多久不要钱 钢筋混凝土裂缝成因与预防措施探究? 浅谈钢筋混凝土裂缝及防治对策? 新鲜鹿鞭的毛怎么处理 假设一个游戏人物类继承了武器类,装备类,C++中可以多继承,如何用java中接口来解决上面的问题 如何用c++实现java中的getbytes,或者是如何在c++中将一个字符串转换为它的字节数组。 幼儿园学生给老师的新年祝福语 祝幼儿园老师的新年祝福语 幼儿园老师新年祝福语简短 祝福幼儿园老师的新年祝福语 幼儿园给老师的新年祝福语2023年 人寿保险未完成的保全怎么办 本保单存在未完成财务确认的收款记录,暂不能办理本项业务 客户暂未办理保全是什么意思 梦见有人说爱我的预兆 梦见异性朋友说爱我的预兆 梦见自己喜欢的人说爱我的预兆 梦见很好的异性朋友说喜欢我的预兆 蜀山传奇周轻云什么技能能造成全体混乱 异地社保转入深圳流程是怎么样的呢 好物推荐!以下这几款神器,专门解决你的各种尴尬。 轻微狐臭怎么不用手术根除 soft stone 消臭石好用吗 iphonex和xsmax发热对比