首页 > OOP的三个特点之一是继承;但是为什么GoF的设计模式原则要求多用组合,少用继承?

OOP的三个特点之一是继承;但是为什么GoF的设计模式原则要求多用组合,少用继承?

OOP的三个特点之一是继承;但是为什么GoF的设计模式原则要求多用组合,少用继承?


继承的耦合很强,组合的耦合低

你老子永远是你老子,但是你朋友可以一茬茬的换。
你老子和你的耦合你永远解不开,但是你朋友和你的耦合你扇他一巴掌就断了

偶尔搞笑一下,基本的理由是这些,看看其他朋友比较端正的回答~~


“OOP的特点”,描述的是编程语言的特点,意思是可以这样来使用OOP语言,即可以使用类似“继承”这样的语法。
“设计模式”,描述的是解决问题的方法,意思是在解决类似问题的时候,可以使用这种编程范式。

本质上,“继承”和“组合”,都是编程语言支持的语法。
在解决某个具体问题的时候要具体问题具体分析,不能一味用组合或用继承。

比如:人会走,也会跑。什么时候走,什么时候跑,都是有具体的场景的。


集成耦合高, 编译时期就已经决定了这个对象是一个什么东西。
组合更加灵活,可以运行时期动态给对象指定不同的功能。而且也要求让组件的更加内聚,方便被组合复用!

【热门文章】
【热门文章】