浅谈个人对面向对象的程序设计的理解(一)
来源:互联网 发布:整人锁屏软件 编辑:程序博客网 时间:2024/05/16 11:45
面向对象的程序设计,我记得好像是上世纪70年代提出来的,具体时间不太记得了,那么到现在应该有40多年的历史了,设计模式,也是上世纪80-90年代提出来的,至今也有20多年的历史了。
如今的很多程序员,可以很好地使用设计模式和面向对象的设计理念,来设计和实现自己的应用程序。其实,我个人觉得,不管是面向对象,还是结构化程序设计,从流程和逻辑来看,其本质都是一样的,不一样的是分析和实现的思路,而面向对象由于其更加贴近与实际现实,分析和实现起来更加“容易”一些,但是,如果对面向对象的分析和设计理念理解得不够深入,对设计模式也没有实践编程经验的话,那么对具体问题的分析和设计还是会存在偏差,甚至是错误,从而造成BUG一大堆,这点对于面向对象分析和设计的初学者尤其如此。
其实,面向对象的程序设计,首先要搞清楚,什么是类,什么是对象,虽然教科书上说的非常明白,但是有些初学者,还是理解的不够透彻,导致在具体编程时,出入很大,很简单,举个例子就明白了:
小汽车、轮胎、左前轮、右后轮、粤B88888,哪些是类,哪些是对象?
很清楚,小汽车、轮胎是类,而左前轮、右后轮、粤B88888是对象。
类是对象依赖的代码,是属于概念范畴,是抽象的;对象是类的实例,是实实在在存在的东东,是具体的。而面向对象的分析和设计过程,明白后,其实很简单,就是首先找现实问题域中存在的具体的“对象”,然后分析这些对象之间的关系,把分析出来的对象抽象成概念,即:“类”。这样,首先要能够做到,先具体,再抽象,从而把具体的对象抽象成概念的类。
我认为这一步是最基础的,也是最关键的,面向对象的程序设计首先要找准对象和类。
其次,要能够熟练掌握常用的设计模式,具体包括:单例模式、模板方法、工厂模式、适配器模式、代理模式、观察者模式、组合模式等。
再者,养成良好的编程习惯,如果你正在拷贝一大/小段代码,那么说明这一大/小段代码可以封装成一个函数调用,马上停止拷贝,考虑函数的调用接口,并实现它。
还有就是,编程之前,先打开VISIO/ROSE,画一下类的静态图,如果有必要,可以画动态图,我个人一般都会画静态图,动态图根据实际情况,有时画,有时不画;画完类图,就严格按照画好的类图去实现。
最后一点忠告,纸上得来终觉浅,绝知此事要躬行;多阅读开源的代码,仔细体会大师的编程风格和分析思路,落实到自己的实践中。
我自己就是按照上述思路来实践的,这样编写的程序,BUG很少,数万行代码,调试几下就通过了。
- 浅谈个人对面向对象的程序设计的理解(一)
- 浅谈之对面向对象的理解
- 黑马程序员--对面向对象的理解(一)
- 黑马程序员--对面向对象的理解(一)--封装
- 对面向对象程序设计三大特征的理解
- 对面向对象的理解
- 对面向对象的理解
- 对面向对象的理解
- 对面向对象的理解
- 对面向对象的理解
- 对面向对象的理解
- 对面向对象的理解
- 对面向对象的理解
- 对面向对象的理解
- 个人对面向对象的一些见解
- 对面向对象程序设计(OOP)的认识
- 对面向对象,VC,C#的理解
- 对面向对象几个基本概念的理解
- 算法导论-9-2-c-带权中位数
- 《胎动计数》软件开发过程
- 小实验,四种排序算法性能比较
- 课程设计——小型图书管理系统中遇到的问题
- float和clear都是布局的属性
- 浅谈个人对面向对象的程序设计的理解(一)
- 不得已的crash处理
- dos2unixdir.sh
- 八款开源 Android 游戏引擎 (巨好的资源)
- 程序release时去掉NSLog
- 神奇的异或运算
- 编程珠玑 第一章解析
- build.sh
- 如何在winhex里面将一个文件转成C语言数组存储