面向对象程序设计--概念理解

  基于两个原则:抽象和分类。
  抽象与具体相对应。一个人名是抽象,它代表某人的一切属性,包括身高,体重,文化程度等。抽象是具体事物的描述的一个概括。
  试想一下用微波炉炖鸡蛋。 打2个鸡蛋在碗里,放上一点调料,把它整个放进微波炉里,烘烤5分钟。
  使用微波炉的步骤是,先打开门,把制作的原料放进去,然后关好门并按微波炉前面控制板上的有关按钮,它就开始工作了。
  使用微波炉,人们处于下面的状态:
  (1)不用重新设计布局, 不用改变微波炉的内部结构即可使它工作。人们使用微波炉,只需跟微波炉的面板打交道。微波炉有一个接口,就是微波炉的面板,板上有所有的控制按钮和时间显示。微波炉的所有功能都是通过面板控制获得的。
  (2)不用重新编制软件来驱动和控制微波炉中的微处理器, 即与上次使用微波炉的目的无关。
  (3)不用了解微波炉的内部结构。
  (4)一个微波炉的设计师,知道微波炉的内部是用于烧菜热菜, 而无须考虑其工作原理。切设计细节,但在生活中使用微波炉只
  现实生活中,为了减少必须处理的事情,我们是在某一程度的细节中生活的。在面向对象的计算机世界中,这种细节程度就叫抽象。
  在做菜时,人们仅仅把微波炉看成是一个厨房用品而使用,不会考虑微波炉的内部结构。既然只是通过它的接口来使用微波炉,按照显示的提示去做,就不会使微波炉进入不正常的工作状态而损坏微波炉或把菜烤焦。
  如果正常操作下,却被炉壁烫伤了手,或微波炉冒出了火花等,那就是微波炉的质量问题。如果误操作引起菜烧焦了, 或烧不熟, 那就要调整操作。这在面向对象程序设计中是分工明确的两种编程:一种是面向对象应用程序设计,一种是类库设计。他们都属于面向对象程序设计范畴。
  如果操作微波炉之前改动了微波炉的内部结构,或更换了一些电路,那么任何烫伤等事故慨由操作人负责。面向对象程序设计中,这就像是修改了类库。那么,类库的维护也应由该程序员负责到底。
  用面向对象的方法,描述在微波炉中炖蛋的过程时,首先定义这个问题中对象的类型:蛋,微波炉,还有调料。然后,着手设计制作这些对象的模型。即考虑微波炉的制作,鸡蛋的采购等。
  当做“制作微波炉”这项工作时,程序设计在具体的对象一级上,这时候,不用考虑鸡蛋如何做。
  当微波炉做成之后,就可以进入到下一个抽象级。开始考虑炖鸡蛋的调制水平。这时候,不用考虑微波炉的制作,而直接可在微波炉上进行操作。
  操作程序可像下面这样:打碎两个蛋,放点水和调料等,在微波炉中烧5分钟。这就是更高级抽象的描述,也是面向对象程序设计中主程序的描述。这样的描述既简单明了又完整;但这不是一个结构化程序的描述。
  结构化程序是使微波炉的外壳和内部结构与鸡蛋、调料、水同处于一个程序环境中,其程序显示出层层的函数调用结构。控制从手到面板,从面板进入微波炉内部,在复杂的内部电路的逻辑中流动,最后发出“来取吧”的声音。在这个环境中,很难理解抽象及其程度。程序中没有对象,没有能隐藏事物固有复杂性的抽象。制作炖蛋,必须首先是制作微波炉的专家。等到下次制作红烧鱼时,又要重复制作一个专门烧鱼的微波炉了。

你可能感兴趣的:(编程,工作,生活)