【谈谈面向对象】
什么是面向对象?
初学者的答案往往都是从“封装、继承、多态……”这些方面来解释,稍微能多说几句的可能会说:面向对象比面向过程好啊,它怎么滴怎么滴~。再多说可能就是,面向对象是面向过程出了问题之后为了更好的解决一些问题,于是有了面向对象……。通常会提到,万物皆对象啊,有了对象我们而已更方面的操作一个累啊,更好的去做软件……
面向对象真的有必要吗?答案肯定是:有!
面向对象是一种思想,一种跳出面向过程的思想。大部分人用面向对象的语言,写着面向过程的代码。因为面向对象本来就是面向过程,任何机器执行指令的时候可不管你什么对象不对像的,都是一条一条的读取指令。但是面向对象是一种思路或者说是思想,一种解决问题的思路。就像做一件小事情的时候我们可以把方方面面的问题都考虑到,把一件小事做的特别完美。但是一件大事就没那么简单了,事必躬亲早晚累死。而做小事的总要被做大事的人指挥,做大事总是比做小事高级。所以说面向对象比面向过程好,比它高级……
面向对象的精髓应该是“抓大放小”。把大方向交给面向对象去管控,具体的小事情就交给面向过程(也就是对垒出一堆的逻辑语句)来解决。下面就又出了一个问题:什么是大什么是小?做判断前一定会有前提,没有考虑任何前提的判断都是感情用事。在软件开发过程中,“大小”的判断往往要根据需求来判断。没有任何一个人开发出来一个软件,可以做到完美,软件工程之中没有“银弹”。所以,为什么在学校的实验室或者课堂上永远不能明白什么是面向对象什么是面向过程,因为你根本没有那个需求。纵使把某一样东西讲的天花乱坠,但是看不见摸不到只能凭空想象的东西永远不会被人真正的接受……
工作的时候可能经常有人说,你这种方式不对!你这个以后肯定会出问题!你没有用面向对象!你在用面向对象语言写着面向过程的代码……如果这个时候你不忙,倒是可以和他讨论讨论你哪里错了。问问是不是这样做会引发什么问题,或者说是不是他以前这样做导致了什么不好的事情发生。如果你很忙,明天或者后天就要交项目了,不要管他了,自己该干嘛干嘛……
一个程序员的成长,肯定是一堆bug培养出来的。为什么会有这个bug?为什么会有这么多bug?为什么现在新的需求那么难扩展?当遇到了这些问题的时候,就是一个程序员能力提升的时候了。无论你是自己解决还是问google/baidu ,只要你带着问题去找寻答案,思考答案。那就是成长……
开发的过程中,只有当需要的时候我们才去用面向对象思考。
所以什么是面向对象?这是一个根本没有答案的问题……

我的编程之路点滴记录(四)相关推荐

  1. go语言web编程,初学点滴记录1

    2019独角兽企业重金招聘Python工程师标准>>> 几乎所有代码都来自: http://jan.newmarch.name/go/ 感谢该作者 /* IP*/ package m ...

  2. 深度学习(四十)caffe使用点滴记录

    caffe使用点滴记录-持续更新 一.caffe 创建python 层 因为caffe底层是用c++编写的,所以我们有的时候想要添加某一个最新文献出来的新算法,正常的方法是直接编写c++网络层,然而这 ...

  3. 浙江理工大学 我的编程之路 零基础学C/C++ 200题 标程/题解

    浙江理工大学 我的编程之路 零基础学C/C++ 200题 标程/题解 OJ地址:http://47.96.116.66/index.php 标程/题解GitHub:https://github.com ...

  4. 浙江理工大学c语言作业网站,浙江理工大学 我的编程之路 零基础学C/C++ 200题 标程/题解...

    浙江理工大学 我的编程之路 零基础学C/C++ 200题 标程/题解 OJ地址:http://47.96.116.66/index.php 标程/题解GitHub:https://github.com ...

  5. 【转载】我的编程之路——知识管理与知识体系

    [https://segmentfault.com/a/1190000004612590] 本文的资料放到了Github Repo (本文介绍的这种笔记排布方式不一定适合于初学者理解) 六年前笔者开始 ...

  6. 编程之路核心技术卷•Web技术内幕

    本系列文章状态:未完结 ...,更新中 ...,目录尚不完整,但提前发布请大家参考并提出意见,如果属实我会修改,谢谢!``今日更新内容 -> "浏览器如今的状态",明日更新内 ...

  7. 软件开发心得点滴记录

    软件开发心得点滴记录 一见 创建日期:2013/6/27 1. 前言 自从2002年大学毕业后一直沉浸于软件开发之路,平时喜欢思考和归纳,时常会产生一点心得和想法,回想起来是一笔宝贵的财富,只可惜陆陆 ...

  8. GPU 编程入门到精通(四)之 GPU 程序优化

    版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 博主由于工作当中的需要,开始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识,鉴于之前没有接触过 GP ...

  9. 16 岁赚到 20 万美元,我的编程之路始于对代码的热爱

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! [CSDN编者按]编程与热爱亦可兼得.在我们之前的一篇文章中,讨论了两者的矛盾性,在很多人看 ...

  10. CSDN 第六期编程竞赛做题记录

    CSDN 第六期编程竞赛做题记录 -- CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 9.18周日闲来无视写一下 csdn 的编程题,每期编程 ...

最新文章

  1. 你可能不需要一个 JavaScript 框架(二)
  2. 在网络推广外包中企业网站排名优化在网络推广外包中如何实现?
  3. 网站建设案例欣赏_网站制作设计案例_成都辰星建站
  4. linux下配置多网卡或多IP的方法
  5. Constructor sap.ui.core.ComponentContainer has been called without new operator
  6. Android 编程下的四大组件之服务(Service)
  7. 适合初学者的安卓开源项目_开源系列的初学者将从下周开始
  8. 什么是哲学为基础的设计模式?
  9. sed 和 awk 正则表达式
  10. U盘做启动盘之后容量变小
  11. Rendezvous: A Search Engine for Binary Code
  12. qq象棋辅助 android,天天象棋攻略助手安卓版
  13. 非常详细的图文安装wordpress安装教程
  14. 同步数据显示服务器异常,同步异常云端服务器异常
  15. 多米诺骨牌问题Push Dominoes
  16. java swing 自动补全_扩展easyui的combobox组件的自动完成(autocomplete)
  17. 思科ccnp认证网络工程师里MLD snooping协议简述网工必读
  18. python 解析二维码图片
  19. 电信机顶盒怎么连接鸿蒙系统电视,「天翼高清电视」电信高清机顶盒怎么连接电视 - 鲲鹏装修网...
  20. JavaWeb-新版

热门文章

  1. linux内存高但是top进程不高,在Linux中通过Top运行进程查找最高内存和CPU使用率...
  2. java实现电脑定时关机重启_利用任务计划程序实现电脑自动定时关机
  3. Android 字体库的使用-引入外部字体
  4. 如何发布个人网站(入门全套,小白专用,Linux服务器)
  5. Hijack攻击揭秘
  6. retina屏 适配问题
  7. 如何为服务网格选择入口网关_理解服务网格和API网关之间的差异
  8. 你知道台湾Android开发面試題是什么样的吗(附答案解析)
  9. 关于-webkit-的一些用法
  10. Python爬取曾今的K歌