面向对象和面向过程_C#面向过程,面向对象,有哪些区别,我写的代码就是面向对象啊...

这是一篇文字较多的文章,对于您从面向过程转向面向对象会有启发,我以我的实践经验带给你绝对真实的一些过程供您体会领悟。

我没有确切的统计数据,根据我10多年的一线开发经验来看,神国程序员(仅限神国)十中有九,都是写面向过程代码,唯一的那个面向对象的程序员,还被当另类看待,因为整个团队没什么人能理解他的思想和代码,那种感觉是如此的悲凉。君若不信,待看完文章理解面向对象和面向过程的区别后,再站起来,观察一下整个公司,包括你自己,是写面向对象呢还是面向过程?

下面言归正传吧。

我觉得我大概需要科普一下面向过程和面向对象是什么东西。

面向过程:它是从娘胎里带来的,任何一个程序员,只要学习编程,他的第一个代码一定是面向过程。面向过程的简要表现就是程序员是直线思维,他必须从UI层点下去到业务逻辑层,再点下去到数据访问层,然后就可以调出数据来了,并显示到界面上。这种一条线思维,中间断掉任何一个点,他就无法读取出数据库中的数据的思维,就是面向过程。他们的代码通篇都是public、static。什么?我知道internal的,但我感觉没地方需要用internal啊?!

面向过程是不需要学习的,对于每一个程序员来说,他天生就会。

面向对象:程序员的一生,本质上是思想的升华解放过程,他从娘胎里带来的面向过程,不断的向面向对象的思想开始转变,最终完全蜕变。面向对象是一种思想,是需要不断的培养和练习的,它有一系列的指导思想,指导你将程序写的稳健可扩展。它的典型特征就是很多的接口和抽象类。

4c91e7a2e2a5ca8d8747ac0b73f71c3b.png
1b5032379828a3ed9bf6584692e23524.gif

上图是C#类库中的XmlNode类,这就是一个面向对象的抽象类,它继承了ICloneable, IEnumerable, IXPathNavigable等接口。

下面再给大家看个面向过程的例子:

e003fcd48870075e990d8227e4573c2f.png
1b5032379828a3ed9bf6584692e23524.gif

通篇static,连个弯都不需要拐的那种,这种感觉你是不是很熟悉?

再比如下面这种,一个方法中,写的代码少的几百行,多的上千行,两三千行的方法都有。是不是感觉很熟悉?

d4f8701cd2334319504b1dcc6efbde86.png

神国大环境,之所以叫嚣35岁就干不了程序,程序员是青春饭,跟国内商业环境,缺失很多的面向对象的顶级专业人才等原因有关,因为这些领导管理者,本身水平就不高,怎么可能看得到软件的面向对象光芒呢?

而培养一个面向对象,根据我个人的经历,通常需要3-7年时间。3年学语言C#,学解决问题的技能。之后代码写多了,渐渐领悟到重复的地方共性的地方可以使用抽象类,再渐渐的思想开始开化,转向面向对象,这个练习又要几年时间。一来二去,你就上35岁了,还没等你完全领悟面向对象,你就要下岗了。

限于篇幅,本来想接下去举例写代码的,但文字太多了。所以我将在下一篇文章以“家庭”为例子,举例说明,如何编写面向对象的代码,欢迎关注。

祝您用餐愉快。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值