信仰万物皆对象,习惯性Thinking in OOP的话,有可能会限制住自己解决实际问题的思路。

曾经面试过某java候选人,我出了道其实很简单的算法题。

结果候选人上来就去定义对象、属性、方法、接口等等,企图去搭一个面向对象的『框架』来解决问题。

折腾这些『面向对象』的套路耗费了他不少时间,而解决问题的核心算法倒是没能写出几行代码。

我只好不断的提示。

然后他就不断发现『框架』这里不对那里不妥,不断的砍砍砍,改改改,最后实现我题目的时候,大概就砍剩一个十几行的函数。

他自己都叹气了,说道,汗,原来这么简单。

类似他这样的面试者其实不少,他们思维方式的局限,使我深深的感受到了面向对象编程的弊端。

『面向对象』,是一种思维方式,一种套路而已;当开发者的脑海被这种套路给侵占之后,他们会不自觉的把简单问题给复杂化,而且他们还很难自觉其复杂性,即便发现了,也可能会误以为那是自己技术牛逼的体现。

但其实,这个世界,还可以有别的思路,别的套路;有时,完全可以更简单的工程实现方案!

当『万物皆对象』成为信仰的时候,工程师的思维也就有了桎梏。

java程序弊端_面向对象编程的弊端是什么?相关推荐

  1. java 求导函数_面向对象编程 —— java实现函数求导

    文章目录 首先声明一点,本文主要介绍的是面向对象(OO)的思想,顺便谈下函数式编程,而不是教你如何准确地.科学地用java求出函数在一点的导数. ★引子 defd(f) :defcalc(x) : d ...

  2. Java_第08章_面向对象编程(高级)

    第08章_面向对象编程(高级) 本章专题与脉络 1. 关键字:static 回顾类中的实例变量(即非static的成员变量) class Circle{private double radius;pu ...

  3. Java基础教程:面向对象编程[2]

    Java基础教程:面向对象编程[2] 内容大纲 访问修饰符 四种访问修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限. default ...

  4. java程序设计基础_陈国君版第五版_第十一章习题

    java程序设计基础_陈国君版第五版_第十一章习题 /*** 题目:假设某家银行可接受顾客的汇款,每进行一次汇款,便可计算出汇款的总额.现有两名顾客,每人分三次,每次一百元将钱汇入.试编程来模拟顾客的 ...

  5. JDK文档是Java程序开发不可缺少的编程词典

    Java 构建商业应用程序或者某种物联网设备,构建了Android 操作系统,它为智能手机行业做出了杰出的贡献.借助 Android 操作系统,手机厂商才得以在早期与黑莓抗衡,之后又能够打破苹果的主导 ...

  6. 基于STM32F103移植华为LiteOS_任务挂起与恢复_面向对象编程思想之按键状态机

    华为LiteOS_任务挂起与恢复_面向对象编程思想之按键状态机 因为在做华为LiteOS任务挂起和恢复需要使用到按键去触发任务挂起和恢复动作,因为我就萌发出使用状态机这种架构做一个按键检测触发.回想已 ...

  7. java程序设计基础_陈国君版第五版_第七章例题

    java程序设计基础_陈国君版第五版_第七章例题 class Cylinder {private double radius;private int height;private double pi ...

  8. java程序设计基础_陈国君版第五版_第五章习题

    java程序设计基础_陈国君版第五版_第五章习题 import java.util.Scanner; public class Main5_1 {public static void main(Str ...

  9. java程序设计基础_陈国君版第五版_第四章例题

    java程序设计基础_陈国君版第五版_第四章例题 <pre name="code" class="java">public class Main4_ ...

最新文章

  1. ZooKeeper概述与原理
  2. 博客园自定义背景(一)
  3. nginx linux源码编译安装,Linux源码编译安装nginx
  4. hdu3339 In Action(Dijkstra+01背包)
  5. b站前端大佬_知乎大佬强烈热推的5个自学网站,看了几个月,月薪三千涨三万...
  6. Python字符串| isdecimal()方法与示例
  7. Science子刊:喝酒脸红的人,患胃癌风险大增,他们都有同一个基因突变
  8. 泛型类 0104 c#
  9. centos apache 腾讯云ssl证书配置
  10. 结对开发——一维数组最大子数组判断溢出
  11. libiconv交叉移植
  12. react学习系列1 修改create-react-app配置支持stylus 1
  13. Luogu2680 [NOIP2015 提高组] 运输计划
  14. 【元胞自动机】基于matlab元胞自动机模拟SEIR传播模型【含Matlab源码 2156期】
  15. python词频统计排序小demo
  16. 【tensorboard】解决ValueError: Duplicate plugins for name projector
  17. 与你的梦,种植于青山绿水间
  18. pandas过滤某列含有nan 的行
  19. c语言 判断互质,[经典算法] 找出某数以内与其互质的数
  20. 单片机实验(十五)74LS47数码管译码

热门文章

  1. 函数式编程之-模式匹配(Pattern matching)
  2. .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  3. gRPC官方快速上手学习笔记(c#版)
  4. 拥抱.NET Core系列:依赖注入(1)
  5. .NET Core系列 :4 测试
  6. java的collections_Java中Collection和Collections的区别
  7. Android之解决主页面Activity监听fragment退出问题(由NavHostFragment和RxFragment一起管理fragment)
  8. Android之华为平板打日志提示Permission denied
  9. C和指针之字符串之strncpy、strncat、strncmp
  10. 快速学习使用springmvc、strust2、strust1以及它们的对比