抽象化的过程
抽象化也可以认为是对要求解的问题的问题域进行建模的过程,是求解问题的必要步骤。建立的模型或者说抽象化的结果常常是某个数学模型,比如E=mc^2(呵呵,找个名气大的,正所谓背靠大树好乘凉啊)。
计算机求解问题也要建模,只不过不同的语言、不同的程序设计方法建模的方式和目标对象不同而已。过程化的程序设计方法实际上是对机器进行建模,其中“汇编语言对底层的实体机器进行少量抽象化(Assembly language is a small abstraction of the underlying machine)”,C等语言“在汇编语言基础之上再抽象化(were abstractions of assembly language)”。但是对机器建模不能取代对问题域的建模,因此过程化的程序设计实际上需要建立机器模型和实际待解决问题模型,并建立两者的映射。
面向对象的程序设计方法(OOP),则提供足够一般的抽象化方法,这种抽象化方法决不仅仅局限于某一特定问题,而是可以通过“导入新的对象”使之适用于特定领域的问题;并且提供“以问题描述问题(describe the problem in terms of the problem)”能力。
SmallTalk五大特性
1.Everything is an object
2.A program is a bunch of objects telling each other what to do by sending messages
3.Each object has its own memory made up of other objects
4.Every object has a type
5.All objects of a particular type can receive the same messages
阅读(1716) | 评论(0) | 转发(0) |