留言与评论(共有 0 条评论) |
发布时间:2020-04-12 08:49:15
主要有以下2个方面的好处。
一,维护状态
能够独立维护多个实体(你例子中的球)的中间状态。假如你的需求只是只有一个球,那是无法看到这个好处。
当你需要同时2个(或更多)的球同时在运行,那么每个球都需要各自独立维持自己的状态(坐标和旋转角度等属性),但他们都归属于一个类别"球",他们共享着"球"的结构。
再深入一些来说,现在每个球的生命周期都是独立了,一个球的销毁不会影响其他的球,程序可以放心安全地运行。
二,贴近现实
面向对象的好处很多,网络上的资料各种各样,我这里说一个最基本但却是最重要的一点,就是让你的程序结构更加贴近现实问题的模型。
用你的例子说,现实模型就是描述一个球体的运动。你定义了“球”这个类来对应现实问题中的"球体",这个"球"类还具备了现实模型"球体"的行为和属性。
而需求的变动往往是基于现实模型的逻辑,比如,客户可能希望之后的程序可以支持多个球体互相碰撞。客户几乎不可能跳出现实模型来提出一些无中生有的需求。
因此,你的程序就可以更好的应对未来的变动。
补充
上面只是说"球"这个类,没有说到把整个程序也定义为一个类。那是因为所谓的"程序"类并不是现实模型的体现,他只是体现了程序的流程走向,把他封装为一个类只是一般性质的流程封装,没有特别的意思,完全可以用方法的形式封装(所谓的面向过程)
最后
可能你还会想说定义为类可以用到继承等好处(比如复用代码),这个想法一般是错误的。继承或组合,只是用于更好地让你的程序结构更符合现实模型,因此,如果根据上述2点来设计你的结构,自然而然能够复用代码。
想了解更多python的细节,可以关注我头条号,我已经发布了许多相关的文章,总有一篇适合你。私信我"python",可以获得按水平领域归档的资料。
封装成类的好处,总结归纳有2个:一个是保护隐私,一个是降低程序复杂度
留言与评论(共有 0 条评论) |
全站搜索