软考进行时——面向过程设计VS面向对象设计

概念

	
	面向过程设计:面向过程其实是最为实际的一种思考方式,就是是面向对象的方法也是含有面向过程的思想。可以说面向过程是一种基础的方法,它考虑的是实际的实现,一般的面向过程是从上往下步步求精,所以,面向过程最重要的是模块化的思想方法。
	面向对象设计:顾名思义就是以对象为基础的软件设计。教科书上是这么说的:面向对象设计以客观世界中的对象为中心,其分析和设计思想符合人们的思维方式,容易被人们所接受。
 

不解

	看到面向对象“容易被人们所接受”这个评价时,我有一种不解,就个人而言,我反而感觉面向过程的设计更容易被接受,虽然它不够灵活,难以维护,但是在敲代码的时候还是比较容易上手的,因为你不需要抽象,直接想让计算机怎么实现,它就去怎么实现,你一步一步的告诉它,然后它就一步一步的照做,这样的思维方式不是更符合人们的思维吗?从这两种设计方式出现的先后顺序上也能看出面向过程更符合人们的思维习惯吧?
比较
	

	以前学习这两种设计模式的时候,一直都是一边倒的将面向对象奉若神明,但是它是不是真的值得我们这么去膜拜呢?让我们来看看。
	首先,二者在实现方式上的区别从概念上就已经看出来了,面向过程是按步骤走,面向过程是按结构走,可以这么说吧。
	第二,面向过程的思维方式是分析综合,面向对象的思维方式是构造,一个注重细节,一个关注宏观。
	第三,从技巧性上来说,面向过程的设计涉及到算法更多一些,更具有挑战性,技巧性强,而面向对象主要在于对象的抽象技术,抽象完了以后,任何人都可以做后面的工作了。个人觉得做抽象的那个人才是真正的技术人员,其他的后期工作交给码农就可以了,这个成本较低。
	第四,从代码量上来说的话,如果软件规模小,结构简单的话面向过程的开发自然快速,代码量小。反之,自然是首选面向对象的设计。
	第五,至于一提到面向对象随之就提到的灵活啊、可维护、可扩展之类的溢美之词在此就不再介绍了,因为只要一说面向对象,这些就像是附属品一样,大家都耳熟能详,肯定也比我说的好。

总结

	通过上面的比较,相信大家更加坚定了对面向对象的信仰,更加将其奉若神明。不过,这个面向对象中的抽象的过程可不是一般人能做到的,要达到改动只是局部的需要设计的人有足够的经验,使用面向对象的语言不能保证你的程序就是面向对象的,初学者或者很蹩脚的程序员很可能以面向对象之虚而行面向过程之实,这样设计出来的所谓的面向对象的程序很难有良好的可移植性和可扩展性。
	还有一点我想要说的就是,面向过程绝不是一无是处的。它其实是最实际的思维方式,也是大多数人的思维方式。就算是面向对象的方法,同样也包含着面向过程的思想,面向过程是一种基础的方法。而且相对于面向对象来说,面向过程的方法容易上手,甚至不需要基础,就按照你的想法一步一步去做就行了。但是,并不是说就此止步了,之所以还有面向对象的出现,就是因为面向过程已经不能满足实际的需要了。随着软件规模的不断扩大,业务和逻辑变得越来越复杂,面向过程已经应付不了了,所以才有了面向对象的诞生。从面向过程过渡到面向对象是我们必经的一个过程,这不仅仅是设计方法的提升,更是思想的提高。

 
 
 
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值