浅谈个人对面向对象的程序设计的理解(一)

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