面向对象与设计模式随笔1——面向过程与面向对象之争

先看看理论:

 

面向对象的三个基本特征是:封装、继承、多态。

 

不说明意思了,网上很多。

 

面向过程与面向对象?

记得以前学C的时候,老师告诉我们,C语言是面向过程的语言。恩,这个就是我对什么叫面向过程的印象。什么是面向过程呢?一个接一个的文件,每个文件里面封装了一堆统一“类别”的方法。然后写代码的时候include一堆文件,然后调用里面各种不同的方法……

后来接触到高级语言,如C++,java,C#。首先,我们看到的是一个大大概念——面向对象。然后脑袋上挂了个大大问号,什么叫面向对象?记得这个问题一直困扰了我很长时间,期间和不少同事争论过。一直到最后的理解。

在讨论面向对象的问题之前,我们先回过头看看当年是怎么样编写面向过程语言的方式的。其中大家会发现一些共同点,封装。是的,无论我们是用面向过程的方式编写代码,还是用面向对象的方式编写代码,我们总避免不了干一件事情,就是把相类似的逻辑都尽量封装一个比较方便获取的地方。然而,紧接着面向过程的麻烦就来了。第一,有时候我们在调用方法的时候,把相似业务逻辑的方法,我们都统一的放在一个文件中。然后又有类似的方法,我们就在这个文件内部添加。日积月累,一个文件内的方法堆积如山。后人再调用时,好吧,有时候甚至自己在回过头来调用的时候,眼球都要掉下来了,囧。怎么找哇?仔细再看看,虽然说是相似的业务逻辑,但是细分起来还是有不少区别。能不能解决这些麻烦?

哈哈,这个时候我们就可以把面向对象的大旗扛出来了。对,那个就是继承和多态。经过一番整理过后,会发现代码是多么的富有逻辑性。我们把类似的业务逻辑无论具体是行为也好,属性也好。反正认为有关系的东西,我们统统地都封装在一个类里面。当需要扩展时,我们可以通过继承来实现,或者干脆封装在原来的类也行(当然,面向对象的设计会有一些小Tip,发展到后来,就是我们熟知的设计模式了。)。

说了这么废话,看起来怎么想面向对象的托啊,难道面向过程的设计模式就一无是处么?

实际上是有的,说白了,过程式的开发效率是很快的。我们有时候没有必要去研究一些如何如何把这些逻辑去归纳,封装。我们追求的是效率,是如何实现。或者这么说,当有时面对一个崭新的事物,我们甚至都不了解其中的规律时,如何去实现它不就是我们最大的目的么?

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值