我的编程之路点滴记录(四)

【谈谈面向对象】

什么是面向对象?

初学者的答案往往都是从“封装、继承、多态……”这些方面来解释,稍微能多说几句的可能会说:面向对象比面向过程好啊,它怎么滴怎么滴~。再多说可能就是,面向对象是面向过程出了问题之后为了更好的解决一些问题,于是有了面向对象……。通常会提到,万物皆对象啊,有了对象我们而已更方面的操作一个累啊,更好的去做软件……

面向对象真的有必要吗?答案肯定是:有!

面向对象是一种思想,一种跳出面向过程的思想。大部分人用面向对象的语言,写着面向过程的代码。因为面向对象本来就是面向过程,任何机器执行指令的时候可不管你什么对象不对像的,都是一条一条的读取指令。但是面向对象是一种思路或者说是思想,一种解决问题的思路。就像做一件小事情的时候我们可以把方方面面的问题都考虑到,把一件小事做的特别完美。但是一件大事就没那么简单了,事必躬亲早晚累死。而做小事的总要被做大事的人指挥,做大事总是比做小事高级。所以说面向对象比面向过程好,比它高级……

面向对象的精髓应该是“抓大放小”。把大方向交给面向对象去管控,具体的小事情就交给面向过程(也就是对垒出一堆的逻辑语句)来解决。下面就又出了一个问题:什么是大什么是小?做判断前一定会有前提,没有考虑任何前提的判断都是感情用事。在软件开发过程中,“大小”的判断往往要根据需求来判断。没有任何一个人开发出来一个软件,可以做到完美,软件工程之中没有“银弹”。所以,为什么在学校的实验室或者课堂上永远不能明白什么是面向对象什么是面向过程,因为你根本没有那个需求。纵使把某一样东西讲的天花乱坠,但是看不见摸不到只能凭空想象的东西永远不会被人真正的接受……

工作的时候可能经常有人说,你这种方式不对!你这个以后肯定会出问题!你没有用面向对象!你在用面向对象语言写着面向过程的代码……如果这个时候你不忙,倒是可以和他讨论讨论你哪里错了。问问是不是这样做会引发什么问题,或者说是不是他以前这样做导致了什么不好的事情发生。如果你很忙,明天或者后天就要交项目了,不要管他了,自己该干嘛干嘛……

一个程序员的成长,肯定是一堆bug培养出来的。为什么会有这个bug?为什么会有这么多bug?为什么现在新的需求那么难扩展?当遇到了这些问题的时候,就是一个程序员能力提升的时候了。无论你是自己解决还是问google/baidu ,只要你带着问题去找寻答案,思考答案。那就是成长……

开发的过程中,只有当需要的时候我们才去用面向对象思考。

所以什么是面向对象?这是一个根本没有答案的问题……

时间: 2024-11-12 19:35:04

我的编程之路点滴记录(四)的相关文章

我的编程之路点滴记录(五)

html5 要火了吗? 随着微信越来越火的趋势,微信朋友圈似乎给h5带来了新一轮的春天,特别是不久前h5标准的定稿.很多人开始奔走相告:前端要火了,h5的春天来了.作为一个入门级别的程序员,我不敢过早的断言到底 web app  和 native app 最终谁会胜利,因为我还没有那个资格.仅仅从自己的一些观察和体会说一下. 移动互联貌似从08年左右开始火起来,到目前为止也产生了不少优秀的软件.智能手机在改变着我们的生活,很难想象一个人没有手机没有网络的日子,手机和app已经融入了我们的生活.但

我的编程之路(二十四) 出差

1.研发 到了上海这边做开发,一个不大不小的办公司里面坐了差不多20人,有我们研发一部的,也有研发二部和三部的人,大家都负责不同的部分,新人包括我三个,其中有两个本科应届毕业生和一个研究生,大家都很客气.刚开始来都是搭环境,然后就开始干活了,我是做界面的,虽然经常改,但是也不是很赶很急. 早上8点20出门,8点40左右吃饭,九点开始工作,11点半吃午饭,下午两点上班,所以中午时间很充足,完全可以回酒店好好休息,只是路上步行要20分钟,所以我也就懒得回去了,下午5点半吃饭,再工作到八点左右就可以回

初次踏上GUI编程之路(有点意思,详细介绍了菜鸟的学习之路)

初次踏上GUI编程之路 —— 我的Qt学习方法及对Qt认识的不断转变 -> 开始接触GUI与开始接触Qt: 话说,我第一次看见“Qt”这一个名词,好像是在CSDN网站的主页上吧,因为CSDN好像在给Qt做宣传,在主页上占了一栏的广告,只是,这时,我还没怎么刻意去留意这个陌生的字眼.在我大二上学期中下期时,即大概是2011年的12月,由于自己刚刚完成了汇编语言的入门学习,正要制订下一个学习目标,所以,又开始找起了资料,同时,也再次开始为自己的就业问题担心,于是,开始搜集一些招聘单位的信息,这时候,

我的编程之路(二十一) 规范

不知不觉一周就过去了,这周细想真的没有做成什么,因为几乎都是做了改,改了做··· 1.代码规范 以前自认为自己很注重代码规范,但是没有想到自己项目组的开发会将代码规范审查的那么严谨,这突然让我想到之前说到程序员都喜欢追求完美,都喜欢自己和自己的风格一致,否则就会觉得别扭,不过与此不同,这是团队开发,代码规范是为了统一风格,便于别人的阅读与后人的修改与维护,虽然因为这我前前后后改了三次dao层的代码,一是要用公司封装的借口,二是要把异常处理都放在这一层或者service层,三是要用公司自己写的工具

Linux环境编程之文件I/O(四):文件I/O的数据结构

(一) Linux系统支持不同进程间共享打开的文件.内核使用三种数据结构表示打开的文件:进程表项.文件表项.v节点表. 1.进程表项:每个进程在进程表中都有一个记录项,记录项中年包含有一张打开文件描述符表,可将其视为一个矢量,每个描述符占用一项.与每个文件描述符相关联的是: a.文件描述符标志 b.指向一个文件表项的指针 2.内核为所有打开文件维持一张文件表.每个文件表项包含: a.文件状态标志,如读写.添加.同步和非阻塞等. b.当前文件偏移量 c.指向该文件v节点表项的指针 3.每个打开的文

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

博主因为工作其中的须要,開始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识,鉴于之前没有接触过 GPU 编程.因此在这里特地学习一下 GPU 上面的编程.有志同道合的小伙伴.欢迎一起交流和学习,我的邮箱: [email protected] . 使用的是自己的老古董笔记本上面的 Geforce 103m 显卡,尽管显卡相对于如今主流的系列已经很的弱.可是对于学习来说,还是能够用的.本系列博文也遵从由简单到复杂.记录自己学习的过程. 0. 文件夹 GPU 编程入门到精通

【程序员编程艺术】学习记录3:字符串包含问题

[程序员编程艺术]学习记录3:字符串包含问题 题目: 假设这有一个各种字母组成的字符串A,和另外一个字符串B,字符串里B的字母数相对少一些.什么方法能最快的查出所有小字符串B 里的字母在大字符串A里都有? <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

点滴记录——Windows 7中安装Sublime Text 3、cynwin、SublimeClang

转载请说明出处:http://blog.csdn.net/cywosp/article/details/34429697 1. 到https://www.cygwin.com/下载setup-x86_64.exe安装文件,下载后采用默认路劲安装,在选库的时候,选择相应的gcc g++ 2.到http://www.sublimetext.com/3下载Windows 64 bit的安装包,下载后安装 3. 安装Package Control 安装好sublime text 3后打开,然后按快捷键"

我的编程之路(二十) 新的环境、新的开始

被其他项目组借用了三个星期,这周终于要给自己的项目组干活了,之前就听同事说过省厅,这次终于要去了,有点激动哈: 1.挤公交 星期二跟着同事一起去省厅,那个公交呀,真是挤呀,以前还庆幸自己上班不用挤公交呢,唉~~~看来这一个多月都要重复着早上7点20起床,7点50挤半个多小时公交的生活了~~~ 2.同事 还记得刚来公司的时候,强哥就跟我说,zqq(一个女生)就做的很好,对自己要求很高,一直在省厅那边,上次我们项目组聚会,第一次见到本人,也见到不少其他同事,那次还自己把自己灌醉了,幸亏宝强哥把我送了