程序员入门消遣看看(三)

领悟“面向对象”


你在上班过程中,你的领导一定会要要求你具有面向对象的思想,“面向对象”对于新手来说就是玄学。和我们日常生活中处理事情总是按照步骤一步一步来有关系把。然而这个在编程中非常重要的思维方式,在书上就是一句更加玄学的话。在面试时很多时候面试官都会问道这个问题,在我的经验中,绝大多数的同学回答这个问题都是正确的,但也是不理解的。就像在网上搜的面试宝典的标准答案一样。“面向对象”在工作中真的很重要,如果对该思维不理解的同学,很可能写的代码,不易读,难维护,易出bug。
那么什么是面向对象呢,和其他资料上说得一样,就是把事情分类处理。这里关键问题就来怎么分类,有没有好用分类准则呢。这个书上却没有讲需要同学们去意会,这里我整理了几个我自我感觉比较好得方法以供参考:
父子兄弟关系领导和职员的关系包含不包含的关系
比如我们常见的 乘车案例,我们接下来分析一下利用面向过程和面向对象代码大概的书写思路。从而来感受一下他们的区别,以及面向对象的优势。当然面向过程也不是完全一无是处的。这里没有必要再争论到底谁好,面向对象大势所趋,就像智能手机要淘汰按键手机一样。这里说一句题外话——很多程序员由于职业的原因对事情的绝对性总是保有怀疑态度,这是好的,这是工作严谨的需要,但刚入门的程序员在绝对实力面前谦虚一点我觉得没有什么。 接着说案例:要求就是完成从一个车站A到车站B乘车任务。
首先看面向过程思维方式应该怎么写代码:
到车站A等待对应班车,班车来后上车买票,找座位坐好,N个站以后到达B站下车。看起来简单合理逻辑清晰。
再来看看面向对象怎么思考:
公交车上有司机,售票员,乘客,这个时候我们再给他们来一个更高级管理角色,公交车运营管理得人。明显这个管理人有更高得话语权(请不要抬杠,说什么司机想把车咋开就咋开,他才是老大。这种抬杠没有意义,请认真看接下来得分析)。我们来分析每个角色所会涉及到业务逻辑。
司机:开车、停车、处理车辆应急事件。
售票员:买票、检票、处理行车过程中交通文明行为等
乘客:上车,下车,决定坐不坐座位,提供票据等
运营管理人:派发公交车得行车路线,时间等
案例中的要求只需要乘客上车,下车,买票等动作完成实际就达到要求了。
可能有的同学不是很能理解,面向对象还有一个非常重要的准则,“自己的事情自己做,别人的事情不要做”,用到程序里面就是封装。那么这里这个案例中我们的 目标仅仅是坐车,在与其他业务逻辑对接时只需要给出合理的条件即可。但很明显这样分类以后我们做的就是一个完整的项目,具有很强的延展性,也利于项目的分工维护。如果是一份工作按照面向过程的思维整个事情就只能有一个人来完成,而面向对象则可以分给很多人来做。针对利于维护原因则是项目的运营过程中可能存在需求的升级,例如售票变成无人售票,面向对象只需要修改售票员类就可以而面向过程需要将整段代码重新梳理。当然面向对象的优点还有很多。教科书,培训教材上肯定都讲过很多。但当你一旦适应用面向对象的思维来搭建代码时你会发现代码在书写过程中好多时候都是简单的重复了。额,这也是为什么大神们都觉得工作枯燥单调吧。

不知道通过上面的讲解同学们有没有更理解面向对象,不管理解不理解技巧先学会再说吧。记住分类技巧父子兄弟关系领导和职员的关系包含不包含的关系

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值