架构师之路---面向过程和面向对象.docx
《架构师之路---面向过程和面向对象.docx》由会员分享,可在线阅读,更多相关《架构师之路---面向过程和面向对象.docx(15页珍藏版)》请在优知文库上搜索。
1、架构师之路(1)-面向过程和面向对象王泽宾收藏亨1、引言机算机科学是一门应用科学,它的知识体系是典型的倒三角结构,所用的根底知识并不多,只是随着应用领域和方向的不同,产生了很多的分支,所以说编程并不是一件很困难的事情,一个高中生经过特定的训练就可以做得到。但是,会编程和编好程绝对是两码事,同样的程序员,有的人几年之后成为了架构师,有的人却还在不停地Coding,只不过Ctric、Ctrl,用得更加纯熟了。在中国,编程人员最终的归途无外乎两条:一是转向技术管理,它的终点是CT0;二是继续深入,它的终点是首席架构师,成为CEO的人毕竟是少数。如果你现在还是个普通的程序员,希望继续在技术这条路上前进
2、的话,我想你还是应该先补充一点软件工程的思想,学习一点有关设计模式的知识,只有具备这些能力,你才能从整体和宏观层面来考虑问题、分析问题和解决问题。本人Coding了很多年,中间走了不少弯路,虽然最终没什么大成就,但总算有一些心得,很愿意把自己的一些经验拿出来跟大家分享,这或许对你的开展有所帮助。由程序员转为架构师,最绕不开的概念就算是面向对象(C)O)了。记得在大学的时候,我们专业开了一门课叫面向对象的编程。那个时候,我们刚刚学了一门C语言,开发环境用的还是DoS下的TurboC,半点工程开发的经验都没有,纯粹的空对空。所以,一学期下来,我始终处于一种懵懂状态,既没领会面向过程和面向对象到底有
3、什么区别,也没搞懂面向对象能带来什么好处。2、面向过程(OP)和面向对象(Oo)2.1 蛋炒饭和盖浇饭有人这么形容OP和00的不同:用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭。所谓盖浇饭,北京叫盖饭,东北叫攵会饭,广东叫碟头饭,就是在一碗白米饭上面浇上一份盖菜,你喜欢什么菜,你就浇上什么菜。我觉得这个比喻还是比拟贴切的。蛋炒饭制作的细节,我不太清楚,因为我没当过厨师,也不会做饭,但最后的一道工序肯定是把米饭和鸡蛋混在一起炒匀。盖浇饭呢,那么是把米饭和盖菜分别做好,你如果要一份红烧肉盖饭呢,就给你浇一份红烧肉;如果要一份青椒土豆盖浇饭,就给浇一份青椒土豆丝。蛋
4、炒饭的好处就是入味均匀,吃起来香。如果恰巧你不爱吃鸡蛋,只爱吃青菜的话,那么唯一的方法就是全部倒掉,重新做一份青菜炒饭了。盖浇饭就没这么多麻烦,你只需要把上面的盖菜拨掉,更换一份盖菜就可以了。盖浇饭的缺点是入味不均,可能没有蛋炒饭那么香。到底是蛋炒饭好还是盖浇饭好呢?其实这类问题都很难答免,非要比个上下上下的话,就必须设定一个场景,否那么只能说是各有所长。如果大家都不是美食家,没那么多讲究,那么从饭馆角度来讲的话,做盖浇饭显然比蛋炒饭更有优势,他可以组合出来任意多的组合,而且不会浪费。2.2 软件工程盖浇饭的好处就是菜K饭别离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件
5、工程的专业术语就是可维护性比拟好,饭和菜的耦合度比拟低。蛋炒饭将蛋K饭搅和在一起,想换蛋八饭中任何一种都很困难,耦合度很高,以至于可维护性比拟差。软件工程追求的目标之一就是可维护性,可维护性主要表现在3个方面:可理解性、可测试性和可修改性。面向对象的好处之一就是显著的改善了软件系统的可维护性。面向过程(OP)和面向对象(Oo)是不是就是指编码的两种方式呢?不是!你拿到了一个用户需求,比方有人要找你编个软件,你是不是需要经过需求分析,然后进行总体/详细设计,最后编码,才能最终写出软件,交付给用户。这个过程是符合人类根本行为方式的:先想做什么,再想如何去做,最后才是做事情。有的同学说:、我没按照你
6、说的步骤做啊,我是直接编码的。其实,你一定会经历了这三个阶段,只不过你潜意识里没有分得那么清楚。对于拿到需求就编码的人,可能编着编着,又得倒回去重新琢磨,还是免不了这些过程,以00为例,对应于软件开发的过程,00衍生出3个概念:00A、OoD和OOP。采用面向对象进行分析的方式称为00A,采用面向对象进行设计的方式称为00D,采用面向对象进行编码的方式称为OOP。面向过程(OP)和面向对象(C)O)本质的区别在于分析方式的不同,最终导致了编码方式的不同。2.3 面向过程(OP)和面向对象(OO)2.4 面向过程编程(OPP)和面向对象编程(OOP)的关系关于面向过程的编程(C)PP)和面向对象
7、的编程(OoP),给出这它们的定义的人很多,您可以从任何资料中找到很专业的解释,但以我的经验来看,讲的相对枯燥一点,不是很直观。除非您已经有了相当的积累,否那么说起来还是比拟费力。我是个老程序员出身,虽然现在的日常工作更多倾向了管理,但至今依然保持编码的习惯,这句话什么意思呢?我跟大家沟通应该没有问题。无论你是在重复我走过的路,或者已经走在了我的前面,大家都会有那么一段相同的经历,都会在思想层面上有一种理解和默契,所以我还是会尽量按照大多数人的常规思维写下去。面向过程的编程(OPP)产生在前,面向对象的编程(OOP)产生在后,所以面向对象的编程(OOP)一定会继承前者的一些优点,并摒弃前者存在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 架构 面向 过程 和面 对象
