《易学Python》—— 6.2 面向对象设计

本节书摘来自异步社区《易学Python》一书中的第6章,第6.2节,作者[澳]Anthony Briggs,王威,袁国忠 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

6.2 面向对象设计

很多人都喜欢面向对象编程,其中的原因之一是,对象通常对应于现实世界的东西,这让您在开发程序期间很容易想见它们将如何交互。编写管理财务的程序时,您可能创建Account、Expense、Income和Transaction类;编写车间控制程序时,您可能创建Component、ConveyorBelt、Assembly(即组装在一起的多个部件)和AssemblyLine。

咱们回过头去更深入地思考一下冒险游戏。这种游戏都包含什么呢?传统上,玩家是无畏的冒险家,为财宝、名声和荣誉深入地牢或充斥怪物的洞穴。图6.2以草图方式描绘了本章要编写的游戏,您可以使用它向朋友说明这个游戏。


screenshot

其中的基本元素是洞穴,而不是整个洞穴系统。您可能受第2章介绍的列表和函数的误导,错误地认为洞穴系统是重要的组成部分,但从正确层面(洞穴及其内部的东西)着眼,可让设计更整洁得多。程序清单6.2演示了如何编写洞穴类,您应将其放在文件caves.py中,否则本章后面的有些代码将不能正确运行。

程序清单6.2 面向对象程度更高的设计


screenshot


screenshot

screenshot

screenshot

这里的重点是,程序清单6.1的多少代码被替换掉了。Caves类有6个彼此调用的方法,这里用一个类和一个外部函数取而代之。第2章说过,如果代码更短,更简单,通常说明选择的道路正确;也就是说,这个面向对象设计非常适合本章的冒险游戏。下面着手解决程序的下一部分:处理玩家输入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值