Python面向对象编程入门与实践
1. 组合关系与继承关系的比较
在设计中,组合关系乍一看不如基于继承的关系自然,但它有一个显著优势,即允许我们在不向设计中添加新类的情况下添加新类型的贡献。继承在子类有某种特化时最为有用,特化是指在子类上创建或更改属性或行为,使其与父类有所不同。单纯为了识别不同类型的对象而创建一堆空类似乎很愚蠢,这种态度在Python设计者中更为常见,而在Java等“一切皆对象”的程序员中不太普遍。
例如下面这个继承关系的示例图:
+Title
+UPC
+Subject
+Contributors
LibraryItem
Author
Contributor
Actor
Director
Editor
Artist
+Locate()
+Name
*
*
我们可以看到有一堆实际上没有做任何事情的子类。这提醒我们,有时认识到何时不使用面向对象原则很重要,对象只是工具,而非规则。
2. 面向对象设计的思考练习
- 回顾已完成项目 :思考最近完成的一个编程项目,确定设计中最突出的对象。尽可能多地为该对象想出属性,如颜色、重量、大小、利润、成本、名称、ID号、价格、风格等。思考这些属性的类型,是基本类型还是类,是否有些属性实际上是伪装的行为。有时看似是数据的东西实际上是从对象的其他数据计算得出的,我们可以使用方法来进行这些计算。还要考虑该对象有哪些其他方法或行为,哪些对象调用了这些方法,它们与该对象有什么样的关系。
- 分析即将进行的
超级会员免费看
订阅专栏 解锁全文
1707

被折叠的 条评论
为什么被折叠?



