作为一个对象来说,就是一个类的实例。而每个类代表了一种分类概念。中国有句话叫做“物以类聚,人以群分”。每一个物体就是一个分类的实例,而且不需要知道太多的细节,对于外人来说只能通过访问一些方法来进行操作,并不知道对象的内部工作机制。
在 Python 中类的定义通常会描述一些实例变量(也就是数据),甚至包含对象的众多方法。(实际上就是定义一些函数,区别在于方法只可以由对象来执行。)
如上这段解释,其中包含了许多目标、设计原则。
软件的实现都应该具备健壮、适应性、复用性能力。那么这三个目标会在如下做出分别解释。
第一健壮性:
程序员有好坏之分,这种区分就是看他们在开发软件时是否能够确保正确的输出结果。例如,在游戏上的体现就是,玩家的一个技能操作是否达到了该有的效果。如果玩家使用了技能,却出现了例外情况,那么这款游戏的开发就是一种坏了的品质。
如同瘟疫来袭,有的人健壮不会得病,有的人就不行,甚至会死亡。常常对软件的期望都是健壮的,因为具备处理例外情况的能力。
更重要的是在软件的生命周期中出现错误导致了品质下降,例如玩家的抱怨证明了游戏的开发是不健壮的。那么软件的健壮情况下降,无非出现2种结果,一个是玩家流失,另一个就是游戏死掉。
第二适应性:
目前各种软件应用中,不管是网页浏览器驱动的,还是大型程序带动的。软件都需要根据运行时的状况不断做出改善,可以说软件的质量目标设定在什么水平会影响到软件的适应性强弱。
对于有的概念,例如什么移植性,是对软件可以运行在最低配置硬件上的一种度量。现在许多游戏的开发会使用 UE4 (虚幻引擎4)来制作,可以满足此项目标。
在 Python 中书写软件的优势也体现在了 UE4 中,因为 Python 语言天生具备了移植性。
第三复用性:
复用性不光是从字面就可以理解透彻的,同样的代码具备用在不同系统上的各种应用里,这就具备了复用性。具有复用性的代码可以作为组件来使用。
开发具有品质的软件都是大型企业可以应付的事情,因为他们要花费大量成本来保持品质,如果一款设计完的软件采用了一种直接具备复用性能力的话,那么在以后的众多软件开发中都可以作为组件重复使用。
这种重复使用的实现也是需要谨慎对待,不管如何,对于软件错误中的主要源头都是来自不具备复用性所导致的。例如,采用WebGL开发的游戏就不具备复用性,因为无法满足不同硬件上的程序健康运行。