2018-12-13派森学习第25天

今天继续学习笨方法学python。

Composition类的组合,就是可以将其他的类中定义的函数,直接导入到自己写的新的类中,避免重复写。组合函数从另一个角度实现了类的继承功能。

composition


红色框中,直接用魔法方法__init__(self)在初始化的时候,对Other类实例化,赋给self.other,然后就直接调用想要从Other类中复制的函数即可。

问题是什么时候用继承?什么时候用组合?Inheritance VS Composition

“继承与组合”的问题归结为试图解决可重用代码的问题。不想在到处都有重复的代码,因为这样既不干净也不高效。继承和组合都是解决这个问题。继承通过创建一个机制,可以继承基类中的隐含特性,解决了这个问题。组合通过导入模块,实现在其他类中调用函数的能力来解决这个问题。

Inheritance VS Composition

第一,避免多重继承,因为太复杂了。一旦出错,需要花时间去搞清楚继承关系,找出所有出错的地方。

第二,使用组合将代码打包成模块,将这些模块用于许多不同的不相关的位置和情况。

第三,只有当有明确相关的可重用的代码块有共同的概念,使用继承。

不要墨守成规,要因时而变,因势而变。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,828评论 1 32
  • 物冬衫 旷野天湛蓝 阵阵鸟雀私语谈 寺院边 游鱼喜清闲 寞寞人烟无青山 大雪寒 一夜月孤单 幽幽还把星子盼 201...
    龙青阅读 296评论 1 8
  • I don t care = je m 'en fiche !
    白天不卖豆腐阅读 123评论 0 0
  • 同样是领导,境界不同,做法不同,对老弱病者的态度也完全不同…… 本来是不想说前事,只是若没有对比就没有触动,像那女...
    静轩茶香阅读 135评论 0 0
  • “我穿越了两次边境来到这里,这一过程让我感到平壤和首尔是如此的近,却又让人感到如此的遥远。” 2018年2月11日...
    白羊先生阅读 1,001评论 0 1

友情链接更多精彩内容