第7.2节 关于面向对象设计的一些思考

以下是老猿在学习《Python基础教程》第3版(Magnus Lie Hetland著,袁国忠译)过程中记录的一些笔记,老猿觉得这些理念非常好,因此总结出来供大家共享:
1.    将相关的东西放在一起。如果一个函数操作一个全局变量,最好将它们作为一个类的属性和方法;
2.    不要让对象之间过于亲密。方法应只关心其所属实例的属性,对于其他实例的状态,让它们自己去管理就好了;
3.    慎用继承、尤其是多重继承。继承有时很有用,但在有些情况下可能带来不必要的复杂性。要正确地使用多重继承很难,要排除其中的bug更难;
4.    保持简单。让方法短小紧凑。一般而言,应确保大多数方法都能在30秒内读完并理解
5.    对于其余的方法,尽可能将其篇幅控制在一页或一屏内。

确定需要哪些类以及这些类应包含哪些方法时,尝试像下面这样做(老猿认为,下面这些思想有点敏捷开发的味道):
1.    将有关问题的描述(程序需要做什么)记录下来,并给所有的名词、动词和形容词加上标记;
2.    在名词中找出可能的类,在动词中找出可能的方法,在形容词中找出可能的属性。将找出的方法和属性分配给各个类;
3.    有了面向对象模型的草图后,还需考虑类和对象之间的关系(如继承或协作)以及它们的职责。为进一步改进模型,可像下面这样做。
1)    记录(或设想)一系列用例,即使用程序的场景,并尽力确保这些用例涵盖了所有的功能。
2)    透彻而仔细地考虑每个场景,确保模型包含了所需的一切。如果有遗漏,就加上;如果
3)    有不太对的地方,就修改。不断地重复这个过程,直到对模型满意为止。
4)    有了你认为行之有效的模型后,就可以着手编写程序了。你很可能需要修改模型或程序的某些部分,所幸这在Python中很容易,请不用担心。只管按这里说的去做就好

老猿Python(https://blog.csdn.net/LaoYuanPython)系列文章用于逐步介绍老猿学习Python后总结的学习经验,这些经验有助于没有接触过Python的程序员可以很容易地进入Python的世界。
欢迎大家批评指正,谢谢大家关注!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值