新开一个分类,记录工作学习中的一次次争论;虽然说是争论,尽管可能面红耳赤,但其实自己也有很大的提高;希望自己在每次争吵后都能有点滴的提高;分享出来,只因为想让更多的同僚和前辈们提出自己的观点,为了更多的提高。

今天做一道Topcoder上面的算法题,我按照题意传了六个参数给构造方法,然后公司的前辈看到我的写法直接说我的代码自带加密属性(他当时并不知道我究竟做的是啥),然后我也很奇怪,就问他为什么呢?他笑笑,然后说你传的六个参数可以封装成一个类啊,这样就可以不用传那么多参数,并且你传的参数为什么会是a,b,x0之类的东西,这不是自带加密是什么?其实我也很尴尬,平时给方法,变量取名字的时候大多是全英文(为了可读性),但这次只是按要求做一个题,而且是为给自己看的,也就没注意这么多,给前辈解释了(我反问了一句为什么要封装),然后就提到了OOP,类,属性,总之是一大波的争论,也引来其他前面的观望;

事情的起因大概就是这样;其实,关于这次的争论点主要是这样:封装,OOP;前辈的观点是:6个参数,为什么不封装?假如有很多个参数,不封装就会出现很多问题(可读性,维护等等等),意思就是只要传几个参进来就得封装成一个类,然后问我什么是面向对象,什么是OOP。blabla...;我的观点是:什么是对象?为什么要封装?怎么封装才合理?因为做的那道算法题的几个参数我觉得并不适合封装,就打了一个比句,人身上总不能长出狗的尾巴吧?我想的其实很简单,我不是反驳对象,OOP和封装,但是我们要知道在什么时候封装,怎么封装才合理?如果一个类里面的属性或者方法本身都不属于他,强行封装成一个对象到底是对还是错呢?从结果来讲,这个影响并不大,都能正确输出,实现我们想要的功能,代码的可读性看似是提高了很多;但是我真的不能接受这种思想(可能有洁癖吧=-=),我绝对不能让人用双手双脚的在地上爬,人身上也不能长出狗的尾巴,人和狗是有一个共同的父类动物不错,但是也不能强行把人和狗划分为具体的一类吧?

后来也去请教了其他的前辈,也在网上搜了部分相关资料,目前很多可能会把不相关的类型和方法进行组装就变成了一个新的对象,其实也有一定的道理!

面向对象固然重要,但是我们还是得有一定的基本原则,不能碰到几个分散的属性就封装成一个类,那你这个类的意义到底在何处,也许这个问题真的值得深思!

希望有不同见解的小伙伴来解脱解脱我~

关于面向对象的一次争论相关推荐

  1. 测试和恢复性的争论:面向对象vs.函数式编程

    Michael Feathers最近的博文在博客社区引发了一场异常激烈的论战.Feathers发表言论说一些面向对象编程语言的内嵌特性有助于测试的进行,并且使用面向对象编程语言编写的代码更容易恢复. ...

  2. 面向对象编程概念_如何向6岁的孩子解释面向对象的编程概念

    面向对象编程概念 by Alexander Petkov 通过亚历山大·佩特科夫(Alexander Petkov) Have you noticed how the same cliche ques ...

  3. 捅破窗户纸:如何从过程到对象—For金色的海洋以及所有为面向对象而困惑的Tx...

    本来不想写这篇很挨打的Post,不过在最近几天的最热的几篇Post里面看到无数的Tx为了面向对象的争论,感触颇多,遂作此篇. 鄙视OO的也进来鄙视我吧.望OO达人多多指正. 前头有一篇关于对象持久化的 ...

  4. 面向对象,面向服务(转)

    面向对象,面向服务 转自(http://www.cnblogs.com/rib06/archive/2007/05/23/756385.html) 关于这两个概念之间的联系.区别,在SOA提出之初就已 ...

  5. java理念_java温故而知新(9)OOP(面向对象编程)理念

    Object   Oriented   Programming   (面向对象的程序设计) 1.定义 面向对象程序设计(OOP)的具体定义很难下,也很容易因此而引起争论,在   Object-Orie ...

  6. iOS - OC 面向对象语法

    1.类 1)根类:因为类 NSObject 是层次结构的最顶层,因此称为根类. 可以将类称为子类(subclass)和父类(superclass),也可以将类称为子类和超类. 2)分类/类别(cate ...

  7. 设计模式是用来弥补面向对象编程缺陷的方法总结

    面向对象和设计模式都是大家耳熟能详的概念.面向对象是以对象为基本元素,对数据与逻辑行为进行封装.实现面向对象过程的方法是使用抽象,同时在使用抽象进行分析设计的时候就产生了类型,并隔离了抽象与实现.这个 ...

  8. 神话与谬误:争论C++前你应当知道什么

    最近写了一篇关于C++0x Concepts的文章,意料之外地引起了一场小规模口水仗.回各位帖子的同时,回想这些年C++社群的大小争论,觉得有必要把一些长久以来在C++争论中出现的误解列举出来. -H ...

  9. 面向对象编程──走错了路?

    作者 Dave West ,译者 池建强  "如果我们现在回头看一下面向对象这个思想是从哪来的,如果以基于消息传递机制的Smalltalk-80的特性来衡量现在的状态继承和面向对象的使用方式 ...

最新文章

  1. 女黑客发现Firefox高危漏洞获奖4000美元
  2. iframe 禁止打开新窗口_教育部新政策:禁止中学生复读?
  3. 文本分类入门(十)特征选择算法之开方检验
  4. JAVA——仿Linux命令行文件管理系统命令的简单实现
  5. 欢迎使用CSDN-markdown编辑器!!!
  6. SecureCRT自动记录日志
  7. 贝壳app Authorization参数分析
  8. PyTorch框架学习五——图像预处理transforms(一)
  9. 糖豆人显示此服务器正在进行游戏,糖豆人服务器频繁崩溃,west滚石教技巧,蓝哥踢球做内鬼...
  10. linux 链接脚本,Linux下的lds链接脚本简介(一)
  11. 【C++入门】C++ 输入输出和文件操作
  12. java实训文献_java毕设论文参考文献.doc
  13. SiamFC++: Towards Robust and Accurate Visual Tracking with Target Estimation Guidelines 论文学习
  14. springboot实现条形码_java生成条形码(多种条码类型生成)
  15. 计算机毕业设计【HTML+CSS+JavaScript服装购物商城】毕业论文源码
  16. latex formula
  17. ZigBee Dotdot
  18. 豆瓣最新API-python
  19. C语言中函数的重点知识总结
  20. Crane: 腾讯开源一款基于 FinOps 超强大云资源分析与成本优化平台

热门文章

  1. 2022-2028年中国民营医院行业发展模式分析及市场分析预测报告
  2. i love java怎么写编程_专属于程序员的浪漫-Java输出动态闪图iloveyou
  3. background 互联网图片_完美的背景图全屏css代码 – background-size:cover?
  4. 计算机二级考试剩30秒提交,计算机二级考试倒计时4天,四个方法教你高效备战...
  5. 手绘线条图画机器人_机器人插画绘制教程
  6. Android Transition动画
  7. [附源码]SSM计算机毕业设计面向服装集群企业的个性化定制服务系统JAVA
  8. Windows和PyCharm常用快捷键
  9. 利用key对字符串进行base64加解密
  10. Cursor代码编辑器的使用