回 帖 发 新 帖 刷新版面

主题:[原创]面向对象的设计思想

    C++以其面向对象的优秀思想被人们所接受,这就是为什么工业化的程序设计不使用C++,而几乎所有的高校计算机专业都要学习C++的原因.
    不过,真正的在校生,对OO(面向对象)技术了解还不够深入.
    OO不单单是一种编程思想,更是一种科学的世界观,它把现实世界描述成一个充满丰富对象的集合.程序,只是利用OO思想对客观世界的一种建模而已.这也就是为什么我们要把成员变量叫做属性,成员函数叫做行为(操作),"属性"和"行为"更准确的表达了对象的特点,因此这几个词被沿用在几乎所有的面向对象的编程语言中,如JAVA.
    当理解了对象的属性和行为这二个概念以后,就可以开始对OOP进行更进一步的研究了.我们所认识的客观世界是由无数的对象组成,比如人,车,等,因为其丰富性,也就使不少人产生了迷惑,比如说,我们可以把人的牙齿看为一个对象,也可以把黄种人看为一个对象,当然也可以把整个人类看成一个对象,这就为构造对象造成了一定难度.通常来说,对象的选择必须在"具有一个以上可抽象特性"和"动(静)物"之间(一切对象可以分为动物和静物,动物为有生命的物体,静物反之),也就是说,我们不能把没有任何特征的对象抽象出来(事实上,也无法抽象),也不能把这个世界的动物(或静物)抽象为一个类,因为这个类太大,以至于失去了类的意义(和不用"类"是一样的了),所以选择好一个适当的对象范围,是编写一个成功的类的关键,只有认识到这一点,才能使类表现出"重用,重用,再重用"的软件工程思想,也才体现出其价值.
    前面不知道大家是否注意到了,对象和类这两个概念的区别,这是很多朋友混淆不清的,就像前面所描述的:类是抽象于某一对象.这里,对类做一个更加深刻的分析.
    类是一种关系,设其为R,假定R中的有一个元素A,A就是对象,R={(x,A)|x与A具有共同可抽象的特性}这样的描述是任何书上不曾经出现的,谓词P(x)确定的集合,即个体域,就是所有的对象.正因为这样的描述,我们清醒的认识到,在建模时,必须找到一个对象A,使我们可以抽象出一个类来,理清楚这样的思路对OOAD(面向对象的分析与设计)是十分有利的.
    OOP软件工程:
    作为一个系统分析师或者程序员,在任何项目上都要进行需求分析,在设计工程中通过UML(图形化编程语言)表达出OOAD,这是一种高效的方式.UML并非真正意义上的语言,而是一种表达OOAD的标准方式,它实际上更像是编程时用的伪码(形式上),当然它是用图形来表达整个OOAD过程.这里不能更加详细的描述UML,如果有兴趣大家可以利用网络资源,进行有关查询.
    同时更加要指出的是,很多朋友认为:"我还没有进行大规模的程序设计,OOP和UML对我来说是没有作用的."我们不可否认的是,OOP在小型程序中的优势是有限的,不过仔细体会,就会发现OOP表现出某些优势,特别是在复杂的程序(复杂,不代表是大型项目)中,能有好的习惯,从UML(小型程序这个过程一般用伪码)到编写代码,对程序的快速解决是十分有利的,这也是有丰富经验的程序员的忠告,同时,在小程序上就进行规范的训练,必定对大家以后的大型程序设计带来意想不到的帮助.
    以上,对整个对象和类作了建立在概念上的分析和理解.希望这有助于大家对OOP的理解有帮助,以上纯属个人观点,如果不妥请指出.

回复列表 (共5个回复)

沙发

多谢加精!

板凳

这也就是为什么我们要把成员函数叫做属性,成员变量叫做行为(操作),

...................................

3 楼

抱歉,错误已经纠正.

4 楼

不错!

5 楼

确实不错,有启发。。对我这个初学者来说[em2]

我来回复

您尚未登录,请登录后再回复。点此登录或注册