分享
 
 
 

品味Thinking In C++(二)

王朝c/c++·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

第一章 对象导言

计算机革命起源于一台机器。因此,程序设计语言的起源看上去也起源于那台机器。

―― Bruce Eckel

Bruce Eckel的话似乎是正确的。的确,程序设计语言从第一台计算机所用的最原始的拔插N多插头开始,逐步发展到了对底层机器进行抽象描述的汇编语言,“命令式”的编程语言(如C,BASIC,Fortran),描述逻辑模型的LISP和APL语言,到后来对软件开发方式影响颇为深远的OOP(Smalltalk,C++,JAVA)语言,都没有离开一个最为宗旨的意图:让机器解决问题。程序设计语言也就充当了人与计算机交流的纽带。当然,设计程序必不可少的需要设计方法的支持,程序设计方法也和计算机语言的发展是一致的。当一个时代的语言有共同性质的时候,也决定了这个时代的程序设计方式。纵观程序设计语言的发展历史,我们很容易发现设计方法由“过程序”――“面向对象式”。同时,也能够深刻的体会到这两种设计方式给世界的软件业带来的影响。

B.E.在本章简单的阐述了面向对象设计语言中的一些共同的特性,以及面向对象程序设计方法。Alan Kay由Smalltalk的语言设计思想的模型来指出纯的面向对象语言的几个特性:

(1)万物皆对象

(2)程序就是一组对象,对象之间通过发送消息互相通信

(3)每一个对象都有它自己的由其它对象构成的存储区

(4)每个对象都有一个类型

(5)一个特定类型的所有对象都能接受相同的消息

很显然,这几点虽然是Smalltalk的设计宗旨,但它体现了面向对象的设计思想,也说明面向对象的设计是系统设计者从事物的角度去思考问题,而不是从操作或者使用功能的角度来思考问题。这种思考方式在某种程度上讲是一种系统的设计方式,而且如果能利用这种方式,并且应用到软件工程中去,可以很好的节省系统开发所需要的时间,降低系统的复杂性,最终减少开发所需要的开发成本和维护成本。

以面向对象的策略来开发系统:

和“过程型设计(procedural design)不同,OOP开发需要经历几个阶段,当然,这些阶段中的某些部分不是OOP开发中所特有的,它也包括了很多非常好的系统开发过程,可以说,这些过程是项目开发中必须的。

l 进行项目的需求分析,明确在项目开发过程中所要经历的哪些步骤,并对项目开发中可能会遇到的问题进行前瞻式思考,对项目开发时间进行客观的分配,简单说,必须在动手编写代码之前拟定一份周密而详细的计划。

l 让开发人员了解实现的系统最终是需要解决什么问题。很显然,这个过程可以只需要系统分析师和管理决策层清楚,让开发人员参与其中,是为了让他们对系统有个清晰的认识,可以让开发人员更清楚自己所做的工作,这对开发效率的提高是大有裨益的。

l 建立对象

对这个阶段,我们必须按照对象开发方式的几个步骤来进行

1. 面向对象的分析

以项目的需求作为基本的问题模型,分析,识别系统中的对象模型,描述它们之间的交互方式,利用CRC(Class-Responsibility-Collaboration CRC)卡片来对即将使用的类进行描述,使之能够反映实际待解决问题中相关数据和操作。

2. 面向对象的设计

建立软件系统中面向对象的模型,在建模过程中,我们要充分考到对象的特性。B.E.提到的几个过程如下:

对象发现

对象装配

系统构造

系统扩充

对象重用

我将这几个过程简单的理解为:存在,开发,可持续开发,可继承式开发。当然,这些只要了解OOP语言的特性就可以得出的结论。在OOP 语言设计过程中,充分考虑到了这点。所以,如果能够真正的深入了解OOP语言提供的类,我们不难发现,语言本身也遵循着这中开发方式。

很多东西都需要我们自己考虑,自己实践,说白了,要做项目,要编码。只有在这个过程中,才能理解C++中的精髓,理解继承,多态。慢慢的,才会真正有软件工程的概念。

有很多人都想精通C++(包括我),C++的确太复杂了,要做到精通,很难。当然也比较简单,最需要的就是有耐性。候捷说过一句话,让我感想颇深――“勿在浮沙筑高台”。是啊,简简单单的一句话,道出了浮躁的后患:在浮沙上筑高台太危险。所以,更重要的,得先学会做一个不浮躁的人,这样,才会有条件不断的积累到深厚的文化和技术底蕴,否则,可能只能满足于编写简单代码的三角猫的功夫。

我不希望是这样的结局!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有