Hello Rails!

You still have much to do!

松本行弘的程序世界读后感(1)

松本行弘的程序世界

第二章

多态的特点

多态的特点2

多态的特点3

function validateForm()
{
    document.getElementById("submit").disabled=true; 
    document.getElementById("result").innerHTML = "系统正在处理,请稍候"
}

学会理解多态,多态,就是把不同的东西当成相同的东西来处理。比如有3个箱子现在,每个箱子有不同的盖子。每个箱子都有单独的专人管理。打开3个箱子的方法虽然不同,但是只要发出打开箱子的命令,3个人就会进行相应的操作。其本质就是“都是箱子,可以打开盖子”。这就是多态性的本质。“打开箱子”的命令,我们称之为消息,而打开箱子的不同操作,我们称之为方法。

多态的优点 1.各种数据可以统一的处理,可以让程序猿关注要处理什么,而不是怎么处理。 2.根据对象的不同自动选择合适的方法,而程序内部不发生冲突。 3.如果有新数据需要对应的话,通过简单的追加就可以了,而不需要改动之前的代码,这样就使程序具有了扩展性。(这里需要注意的是,不能用很多ifelse判断语句,而是要用面向对象的方法来解决)

面向对象编程三大原则:多态性,数据抽象(封装),继承

单一继承只能有1个父亲,有时候,显得过于严格,现实中,一个程序猿也可能是一名作家。因此,多重继承和单重继承的优缺点如下: 1.单重继承继承关系单纯,树形结构,不复杂 2.多重继承自然做到了单纯继承的扩展,可以继承多个类的功能,但是类之间的关系变得复杂。

goto语句和多种继承比较相似

结构化编程(顺序,分支,循环)和goto来控制结构有明显的不同。虽然goto控制的语句能力更强,但是流程复杂,是“意大利面条式的程序”。而多重继承也有相同的问题。会使关系变得复杂,出现问题的时候,根源也不容易辨名。如下是多重继承的3个问题: 1.结构复杂化 2.优先顺序模糊 3.功能冲突

解决多重继承的问题,既使用其优点同时规避缺点,在Java中叫做接口,在Lisp/Ruby中叫做Mixed-in,因为ruby中只支持单继承。

XXX

I’m XXX

i think i can change the world

  • to do first
  • to do second
  • to do third