java程序弊端_面向对象编程的弊端是什么?
信仰万物皆对象,习惯性Thinking in OOP的话,有可能会限制住自己解决实际问题的思路。
曾经面试过某java候选人,我出了道其实很简单的算法题。
结果候选人上来就去定义对象、属性、方法、接口等等,企图去搭一个面向对象的『框架』来解决问题。
折腾这些『面向对象』的套路耗费了他不少时间,而解决问题的核心算法倒是没能写出几行代码。
我只好不断的提示。
然后他就不断发现『框架』这里不对那里不妥,不断的砍砍砍,改改改,最后实现我题目的时候,大概就砍剩一个十几行的函数。
他自己都叹气了,说道,汗,原来这么简单。
类似他这样的面试者其实不少,他们思维方式的局限,使我深深的感受到了面向对象编程的弊端。
『面向对象』,是一种思维方式,一种套路而已;当开发者的脑海被这种套路给侵占之后,他们会不自觉的把简单问题给复杂化,而且他们还很难自觉其复杂性,即便发现了,也可能会误以为那是自己技术牛逼的体现。
但其实,这个世界,还可以有别的思路,别的套路;有时,完全可以更简单的工程实现方案!
当『万物皆对象』成为信仰的时候,工程师的思维也就有了桎梏。
java程序弊端_面向对象编程的弊端是什么?相关推荐
- java 求导函数_面向对象编程 —— java实现函数求导
文章目录 首先声明一点,本文主要介绍的是面向对象(OO)的思想,顺便谈下函数式编程,而不是教你如何准确地.科学地用java求出函数在一点的导数. ★引子 defd(f) :defcalc(x) : d ...
- Java_第08章_面向对象编程(高级)
第08章_面向对象编程(高级) 本章专题与脉络 1. 关键字:static 回顾类中的实例变量(即非static的成员变量) class Circle{private double radius;pu ...
- Java基础教程:面向对象编程[2]
Java基础教程:面向对象编程[2] 内容大纲 访问修饰符 四种访问修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限. default ...
- java程序设计基础_陈国君版第五版_第十一章习题
java程序设计基础_陈国君版第五版_第十一章习题 /*** 题目:假设某家银行可接受顾客的汇款,每进行一次汇款,便可计算出汇款的总额.现有两名顾客,每人分三次,每次一百元将钱汇入.试编程来模拟顾客的 ...
- JDK文档是Java程序开发不可缺少的编程词典
Java 构建商业应用程序或者某种物联网设备,构建了Android 操作系统,它为智能手机行业做出了杰出的贡献.借助 Android 操作系统,手机厂商才得以在早期与黑莓抗衡,之后又能够打破苹果的主导 ...
- 基于STM32F103移植华为LiteOS_任务挂起与恢复_面向对象编程思想之按键状态机
华为LiteOS_任务挂起与恢复_面向对象编程思想之按键状态机 因为在做华为LiteOS任务挂起和恢复需要使用到按键去触发任务挂起和恢复动作,因为我就萌发出使用状态机这种架构做一个按键检测触发.回想已 ...
- java程序设计基础_陈国君版第五版_第七章例题
java程序设计基础_陈国君版第五版_第七章例题 class Cylinder {private double radius;private int height;private double pi ...
- java程序设计基础_陈国君版第五版_第五章习题
java程序设计基础_陈国君版第五版_第五章习题 import java.util.Scanner; public class Main5_1 {public static void main(Str ...
- java程序设计基础_陈国君版第五版_第四章例题
java程序设计基础_陈国君版第五版_第四章例题 <pre name="code" class="java">public class Main4_ ...
最新文章
- ZooKeeper概述与原理
- 博客园自定义背景(一)
- nginx linux源码编译安装,Linux源码编译安装nginx
- hdu3339 In Action(Dijkstra+01背包)
- b站前端大佬_知乎大佬强烈热推的5个自学网站,看了几个月,月薪三千涨三万...
- Python字符串| isdecimal()方法与示例
- Science子刊:喝酒脸红的人,患胃癌风险大增,他们都有同一个基因突变
- 泛型类 0104 c#
- centos apache 腾讯云ssl证书配置
- 结对开发——一维数组最大子数组判断溢出
- libiconv交叉移植
- react学习系列1 修改create-react-app配置支持stylus 1
- Luogu2680 [NOIP2015 提高组] 运输计划
- 【元胞自动机】基于matlab元胞自动机模拟SEIR传播模型【含Matlab源码 2156期】
- python词频统计排序小demo
- 【tensorboard】解决ValueError: Duplicate plugins for name projector
- 与你的梦,种植于青山绿水间
- pandas过滤某列含有nan 的行
- c语言 判断互质,[经典算法] 找出某数以内与其互质的数
- 单片机实验(十五)74LS47数码管译码
热门文章
- 函数式编程之-模式匹配(Pattern matching)
- .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
- gRPC官方快速上手学习笔记(c#版)
- 拥抱.NET Core系列:依赖注入(1)
- .NET Core系列 :4 测试
- java的collections_Java中Collection和Collections的区别
- Android之解决主页面Activity监听fragment退出问题(由NavHostFragment和RxFragment一起管理fragment)
- Android之华为平板打日志提示Permission denied
- C和指针之字符串之strncpy、strncat、strncmp
- 快速学习使用springmvc、strust2、strust1以及它们的对比