日期:2009-06-14  浏览次数:20968 次

内力衡量人的武学修为,而逍遥派的北冥神功实在是宝贝,习此术之人,全身如同一个黑洞,瞬间就将他人一辈子的修炼积累掠为已有,美名其曰"北冥大水,非由自生"、"百川汇海,海纳百川"。

  但虚竹却不知学习此术需要散去原先功力,所以当他被无涯子完全化成一个空空如也的和尚时,禁不住放声大哭。其实此举绝对可以理解,对于一个练武之人而言,内功象征积累,虚竹虽然笨了点,但二十几年的积累,顷刻间说没就没,不啻于精神世界的毁灭。

  ■ 计算的影响 - 面向过程编程思想

  ASP程序员的老祖宗名叫冯·诺依曼,ASP程序员一直以来都按照他的谆谆教导活着。 ASP程序员从来就认为这个世界的所有事情就象人的一生,有一个起点,叫START,还有一个终点,叫END。他要处理的事情,就象人这辈子,从START走到END,没有回头路。

  ASP程序员还认为,这个世界的所有事情就象人的一生,分成不同阶段,叫模块。每一个模块都要完成一个相互不同的任务,少年求学,青年生子,中年立命,老年不惑。

  ASP程序员又认为,这个世界的所有事情都象人的一生,一共只有三种走法:有时是阔步向前,叫顺序;有时面临选择,叫分支;有时原地打转,徘徊不前,叫循环。

  ASP程序员从来就把"不积跬步无以至千里"当着座右铭,所以他把所有类似的事情处理过程都积累起来,记忆成一个个函数,以后碰到同类型的事情,就去调用函数。

  ASP程序员把这种活法叫着"面对过程编程思想",他平时最关心的,就是过程的模型,最注意的,就是这些过程有没有类似的处理过程可以归纳成函数。

  即使是面对网站登录这么件小小的事情,ASP程序员仍然遵循自已的信仰,先对这个过程建模,如图4-1,然后去调用以前所有积累的函数,精心编织这个过程的每一个环节:不是要用户提交登录数据吗?他用response.write 这支画笔按照顺序一笔一划地描述出用户填写页面;不是要校验格式吗?他调用javascript函数一个个地检查每一个<input>的value值;不是要审核数据吗?他读取用户数据后翻开厚厚的帐目一个个地查找核对;不是要结果吗?他要么带着用户跳转到指定页面,要么又调用函数告诉用户不要鱼目混珠。


  所以ASP程序员活得很开心,他感觉世界尽在他的掌握之中。尽管很早以前有一个位名叫smlltalk的家伙告诉他的这种活法窝囊,当时ASP程序员只是感到不解;又来了个C++说他笨拙,他只是疑惑;还来了个JAVA在他面前耀武扬威,ASP程序员开始彷徨起来。直到有一天,小弟DotNet程序员学成归来,与之促膝长谈,终于,ASP程序员彻底动摇。冥冥之中,记起一位伟人告诫他要与时俱进。但尽管世界在变,ASP程序员依然放不下他多年所积蓄的内力,顷刻间说没就没,不啻于精神世界的毁灭。于是内心有两种呐喊在不断地交织,是在沉默中死去,还是凤凰涅槃?

  ■ 创世纪·六日 - 面向对象编程思想

  DotNet程序员信奉OOP教,神是Framework。

  第一日,神说,万物皆对象(object),对象有标识、状态与行为;

  于是DotNet程序员在大脑中列出Login功能的所有对象:Login对象、Login.ASPx页面对象、登录表单frmLogin对象、提示信息lblMessage对象、用户名文本域txtUserName对象、密码文本域对象txtPassword对象和登录按扭btnLogin对象。

  第二日,神说,有相同特征和行为的对象抽象为类(class);对象即为类的一实例;

  于是DotNet程序员把用户名文本域对象和密码文本域对象抽象成TextBox类,其余分别抽象成Login、Login.ASPx、HTMLForm、Label、Button类,并分别实例了类。

  第三日,神说,对象的相同特征抽象为属性,相同的行为处理抽象为方法;

  于是DotNet程序员把实例frmLogin、lblMessage、txtUserName、txtPassword、btnLogin定义成Login类的属性、并定义方法btnLogin_Click。

private void btnLogin_Click(object sender, System.EventArgs e) {
 if ((txtUserName.Text=="孙二娘")&&(txtPassword.Text=="十字坡"))
  lblMessage.Text="热烈欢迎世界著名武打巨星孙二娘小姐回乡考察投资";
 else
  lblMessage.Text="靠,这年头什么都有假的!";
}


  第四日 神说,类要封装;

  于是DotNet程序员在类标识、属性和方法前都分别加上public、private、protected。

  第五日 神说,类可以继承和合成;

  于是DotNet程序员把Login.ASPx定义成Login的派生类,在Login.ASPx开头加上如下声明语句:

<%@ Page Inherits="WebApplication1.Login" %>

  第六日 神说,类有多态。

  于是DotNet程序员对自己说,我暂时不需要,随后躺下。

  很快他就睡着,只听见他的梦呓缓缓传来:六日,我就拖几个控件,定义几个ID,加一段事件处理代码,感谢万能的主framework和他的忠实仆役Visual Studio,吸星大法,爽!