|
本帖最后由 HHAAMM 于 2012-11-28 18:21 编辑
控制计算机要用到控制计算机的指令,为了更方便指令的编写,人们对指令的编写方式做了一次次的更新改造。
在机器语言>汇编语言>过程语言(期间还出现了可视化语言)之后又出现了以"面向对象思想"为基础的语言。
面向对象思想出现的基础是指令编写人员渴望的指令可"重用性",面向对象语言就是为代码可重用而出现的。
如何去提高效率?重复使用资源,或者把别人的东西拿来就用。这是很不错的主意!
面向对象中的"对象"基本可以理解成任何东西。一座城市可以是一个对象,往大了说国家、地球都可以是对象;望小了说一个家庭、家里的沙发也都可以是对象。
与现实生活不同的是代码编写中的"对象"是存在于计算机内存中的,但他不是凭空出现,他来自于"类"。
类就像是个模子一样,往一个模子里灌入石膏就可以得到一个这种形状的东西。
要产生代码编写中用到的"对象",第一步就是要先做这个"模子",这个模子有个统一的名称-类。
面向对象代码设计思想是-为了完成任务要用到什么对象、编写些类用以产生这些对象。
面向对象语言支持对类的重用,只要系统类库中存在的什么时候都可用,而且在不改变基础类的情况下也可以对重用的类进行修改。
这里举一个小例子:
如果一个工程中多处都要用到设置单元格字体、底色、边框的代码,通常的做法是写一个专门处理这些的函数或过程,每当用到时调用这个函数或过程传入参数。
面向对象思想处理这个问题是将这个函数或过程当做一个类,一个专门设置单元格的类。你可能会说这看起来没什么不同。直观的感觉这可能真的没什么不同。
但在一些特殊情况出现时差别就出来了。假如现在某些地方还要设置单元格字体颜色,面向对象语言可以采用继承的方法产生一个类,该类中添加设置字体颜色的代码。你可能会说,这样还是没什么不同,我再写个处理字体颜色的过程或函数调用不一样吗。是的,到目前为止真的没体现出太大的差别。只是,到了下一个工程开始的时候,差别可能就出现了。
开始另一个工程,当中还要用到设置单元格字体、底色、边框的代码。相信你还会按部就班的写两个过程,如果写好并测试可用需要花费十分钟时间的话,面向对象语言处理这个问题只要几秒钟,引用上次写的这个类并实例化一下,一切ok,似乎现在差别开始出现了。
或许你会说,在新工程里我将上次写的函数或过程复制过来,比你的方式也麻烦不算太多。好吧就这样,我们分别以这两种方式弄了20个新工程给用户。
谁也不能保证自己的代码没bug,假设我们都忽略了合并单元格问题,假设20个用户都接二连三的反应遇合并单元格出错,假设你将这20个工程一一打开修改。面向对象语言处理这个只是你的二十分之一的工作量,只是需要修改下最开始的那个类,其余的19个看都不用看。到了这时你要是还觉得没差别,那我就无语了!
(未完待续,菜鸟作品不要笑话望斧正)
该贴已经同步到 HHAAMM的微博
|
|