从面向对象编程看分解和综合,个体和整体

计算机描述世界和解决问题的方式是对象、算法和编程(算法用语言表示出来)。计算机科学的对象是计算机科学在描述世界的时候对所描述的对象的抽象。一般来说,一个对象对于这个对象的使用者来说,主要关注的是:这个对象和外界是什么关系,也就是外界输入给这个对象什么,这个对象给外界输出什么;同时,刻画这个对象的编程者,关注的是这个对象内部需要什么元素,元素之间什么关系,这些内部元素和元素之间的关系如何按照接收到的外界信息来更新状态,从而如何产生输出给外界的符合其行为的输出。也就是说,对于把这个对象和程序当做工具来使用的人来说,我们得看到这个对象的整体,也就是跳出来看;对于设计和实现这个对象和程序的人来说,我们得看到这个对象的细节以及细节和整体的联系,也就是钻进去看。

如果我们有的时候需要创造性地使用这个工具,那仅仅跳出来就不够了。因为不了解细节如何实现的人,只能把这个工具用到它所设计的地方。就好像说,一个扳手就是用来拧螺丝的。但是,如果我们还了解这个扳手的其他细节,例如比较重,例如比较硬还有一定长度,没准在需要的时候我们还可以把扳手当做榔头或者撬棍来使用。同样,如果我们了解这个对象和程序的一定的细节,有需要的时候,我们就可以把这个程序的一部分算法和程序甚至设计上的想法拿来在适当的场合重用,或者迁移到一个完全不同的场景。这也就是创造性地使用工具和创造工具。

因此,如果要创造知识和创造性地使用知识,我们在学习的时候就要进得去处得来,跳出来的时候看到整体忽略其内部细节,钻进去的时候看到细节以及细节和整体的联系,合起来就是从细节看到整体,从整体的角度来看细节。这就是我们说的分解和综合,或者说既见树木又见森林,或者说,系联性思维。

发表评论

电子邮件地址不会被公开。 必填项已用*标注