面向对象葵花宝典
李晓LOVE向阳
这个作者很懒,什么都没留下…
展开
-
连载:面向对象葵花宝典:思想、技巧与实践(14) - 面向对象开发技术流程
抛开项目流程,让我们来谈谈“技术流程”吧!! 谈到流程,很多人立刻就会想到熟悉的瀑布模型、螺旋模型、迭代开发、敏捷、RUP等一堆软件工程相关的软件开发流程,但对于大部分人来说,这些流程仅仅是项目管理上的概念,只有项目经理开例会时那红红绿绿的甘特图、燃尽图、路径图等,或者只有评估工作量和是否要加班的时候,我们才会意识到这些流程的存在。 通俗的讲,项目管理上的流程主要转载 2016-07-22 15:55:15 · 253 阅读 · 0 评论 -
连载:面向对象葵花宝典:思想、技巧与实践(12) - “继承” 详解
继承 = 遗传 继承是面向对象最基本的特征,如果一个语言没有继承机制,就谈不上真正的面向对象的语言。 继承本身很好理解,和我们日常生活中的“继承”概念基本一样:子承父业!所以,你可以看到面向对象的编程语言里面,有了“父类”、“子类”的概念。 但是我个人认为“继承”这个说法并不确切,一般我们理解“继承”,都是理解为继承产业、继承财产,例如李泽钜继承李嘉诚的事业。转载 2016-07-22 09:40:05 · 279 阅读 · 0 评论 -
连载:面向对象葵花宝典:思想、技巧与实践(11) - “封装” 详解
封装的概念本身很好理解,意思就是把一堆东东装起来。 但要想真正理解封装,这样还远远不够。 第一个问题是:我们要封装什么? 这个问题很好回答,封装当然是封装不想让别人知道或者看到的东东了。 例如: 你的身家。。。。。。 漂亮MM的年龄。。。。。。 富二代的女朋友数。。。。。 明星是否整过容。。。。。。 你是如何赚到100万的(想想什么样转载 2016-07-22 08:58:48 · 376 阅读 · 0 评论 -
连载:面向对象葵花宝典:思想、技巧与实践(10) - “抽象” 详解
抽象的中文概念非常形象,简单来说就是“抽取出来比较像的部分”。 那么,在面向对象的领域里,抽取什么东西比较像的部分? 还记得前面给类下的定义么?我们一起来回顾一下:类就是一组相似事物的统称。 再结合我们对象的定义:对象就是一个具体的类,一个真实存在的类。 我们就很容易发现了抽象的详细含义:抽取多个对象或者类中比较像的部分。转载 2016-07-18 17:06:56 · 277 阅读 · 0 评论 -
连载:面向对象葵花宝典:思想、技巧与实践(9) - “抽象类” 详解
抽象类是一种特殊的类,其特殊性在于抽象类只能用于继承,不能被实例化为具体的对象。例如在Java中不能new一个抽象类,但可以extends一个抽象类。 抽象类的定义其实很简单,但其使用并不那么简单,有几个问题我们需要深入研究一下。 第一个问题是:有了类,为什么还要抽象类,为什么设计一种只能继承,不能实例化的类? 答案就在于:某些场景下普通类不够用。例如,“苹果转载 2016-07-18 16:42:07 · 271 阅读 · 0 评论 -
连载:面向对象葵花宝典:思想、技巧与实践(8) - “接口” 详解
“接口”是我见过的面向对象领域中滥用、乱用、误用最多的术语: 有的人说:兄弟,给我提供一个“查询XXX”的接口。。。。。。 有的人说:系统对外提供了“查询”、“插入”、“更新”、“删除”4个接口。。。。。。 有的人说:我们要基于“接口”编程。。。。。。 有的人说:你这样做破坏了我们的接口设计。。。。。。 。。。。。。。。。。。 倒不是在这里指责他们的水平有多差,转载 2016-07-14 13:33:06 · 304 阅读 · 0 评论 -
连载:面向对象葵花宝典:思想、技巧与实践(7) - “对象”新解
有了“类”的清晰定义后,“对象”就比较容易理解了。 对象就是一个具体的类,一个真实存在的类。 前面我们提到面向对象是对现实世界的模拟,那么对象就是现实世界中存在的“物体”。 例如,“人”是一个类,我就是一个“人”的对象,你也是“人”的对象,奥巴马也是“人”的对象。。。。。。 又比如:你去国美买冰箱,但国美肯定没有一个单独叫做“冰箱”的东西卖给你,而是具体的某台海尔转载 2016-07-14 09:39:13 · 334 阅读 · 0 评论 -
连载:面向对象葵花宝典:思想、技巧与实践(6) - 不要说你懂“类”
方以类聚,物以群分——《周易 易传》。 类是面向对象领域里最基础的一个概念,也是面向对象分析和设计的基石。 然而,如此重要的一个概念,竟然很难找到深入的说明,绝大部分介绍面向对象的书籍或者资料基本上都是这么解释的:“类是一组对象的抽象”,这个解释看起来清晰明了,但实际上犯了一个逻辑上的错误:以未明确的概念来解释待明确的概念,什么是对象,什么是抽象,我们都还不知道,你却用转载 2016-07-12 16:58:49 · 341 阅读 · 0 评论 -
连载:面向对象葵花宝典:思想、技巧与实践(5) - 面向对象迷思:面向对象导致性能下降?
面向对象会导致性能降低? 这是一个在IT江湖流传已久的传说,很多对面向对象不甚了解、或者一知半解的人,每当需要抵触面向对象时,就会把这条“金科玉律”拿出来救驾! 更要命的是,每个相信这个传说的人都会举一个看起来很显而易见的例子:C和Java的对比! 你可以到网上搜索一大堆C和Java的性能对比,你自己也可以做一个简单的对比测试,我毫不怀疑测试结果肯定是C快,但转载 2016-07-12 16:45:43 · 355 阅读 · 0 评论 -
连载:面向对象葵花宝典:思想、技巧与实践(4) - 面向对象是瑞士军刀还是一把锤子?
为什么要面向对象? 可以说,面向过程和计算机是如影随形的。从计算机诞生之日起,面向过程就是占据着主导地位的思想,即使到了现在,面向过程也是无处不在的,C语言、操作系统、协议栈、驱动系统,都是面向过程的代表。 那为什么还会有面向对象的诞生并流行呢?当然是面向过程存在某些不足,如果面向过程足够好,谁还费心费力的去搞另外一套呢? 前面我们提到,面向过程是一种转载 2016-07-12 16:34:18 · 283 阅读 · 0 评论 -
连载:面向对象葵花宝典:思想、技巧与实践(3) - 面向过程 vs 面向对象
面向过程 在介绍面向对象之前,我们首先要介绍“面向过程“,首先是因为”面向过程“是软件思想中的鼻祖;其次是因为只有了解了面向过程,你才能更好的了解面向对象!正所谓:知己知彼百战百胜! 面向过程是一种以“过程”作为中心的编程思想,其中过程的含义就是“完成一件事情的步骤”。 面向过程其实是一种“机械的思想”,它就像流水线一样,一个阶段衔接一个阶段,每个阶段都有自己的输入、处理、输转载 2016-07-12 16:26:31 · 303 阅读 · 0 评论 -
连载:面向对象葵花宝典:思想、技巧与实践(2) - 面向对象语言发展历史
Simula 面向对象技术最早是在编程语言Simula中提出的。1967年5月20日,在挪威奥斯陆郊外的小镇莉沙布举行的IFIP TC-2 工作会议上,挪威科学家Ole-Johan Dahl和Kristen Nygaard正式发布了Simula 67语言。Simula 67被认为是最早的面向对象程序设计语言,是面向对象的开山祖师,它引入了所有后来面向对象程序设计语言所遵循的基础概念:对象、转载 2016-07-12 16:03:53 · 351 阅读 · 0 评论 -
连载:面向对象葵花宝典:思想、技巧与实践(1) - 程序设计思想的发展
史前时代:面向机器 最早的程序设计都是采用机器语言来编写的,直接使用二进制码来表示机器能够识别和执行的指令和数据。简单来说,就是直接编写0和1的序列来代表程序语言。例如:使用0000 代表 加载(LOAD),0001 代表 存储(STORE)等。 机器语言由机器直接执行,速度快,但一个很明显的缺点就是:写起来实在是太困难了,一旦你发现自己写错了,改起来更蛋疼!这样直接导致转载 2016-07-12 15:05:03 · 496 阅读 · 0 评论 -
连载:面向对象葵花宝典:思想、技巧与实践(13) - “多态” 详解
在此要向将polymorphism翻译成“多态”的人致敬! 因为多态的英文实在是太难理解了,而中文翻译得又如此形象如此贴切。 从字面意思上就可以看出,多态就是“多种形态”的意思。但仔细探究一下:“多种形态”其实还是没法很好的理解,不同的人也还是会有不同的理解。 动画片看得多的同学可能会以为:多种形态,就是很多种变身啦 :),就像孙悟空72变一样,一会儿可以变成转载 2016-07-22 09:48:48 · 294 阅读 · 0 评论