哪些代码设计看似是面向对象,实际是面向过程的?
文章目录
- 1. 滥用 getter、setter 方法
- 2. 滥用全局变量、全局方法
- 3. 数据、方法分离
学习自 极客时间《设计模式之美》
1. 滥用 getter、setter 方法
- 违反了封装特性,风格退化为面向过程编程
2. 滥用全局变量、全局方法
Constants 类
所有的常量都放在这个类中,不好:
- 影响代码可维护性(类越来越大,查找费时)
- 增加代码编译时间(依赖这个代码的文件很多,每次修改,依赖的文件都要重新编译)
- 影响代码复用性(可能将一些无关的常量引入到新项目)
改进:
- 拆解,跟哪个模块相关的参数放在一起
- 哪个类用到常量,在其中定义
Utils 类
- 不同的类都共同使用的方法,可以定义到 Utils 类中,它是面向过程的风格,想清楚是不是确实需要
- 也要注意分类,FileUtils、IOUtils 等,做到职责单一
3. 数据、方法分离
- 数据定义在一个类,方法定义在另一个类,是彻底的面向过程的风格
哪些代码设计看似是面向对象,实际是面向过程的?相关推荐
- 什么是面向对象 什么是面向过程 面向对象和面向过程的区别
转自http://blog.163.com/wenxianliang08@126/blog/static/83583263201131611916893/ 面向过程就是分析出解决问题所需要的步骤,然后 ...
- Java面向对象相对于面向过程的优势?以及java创建对象的4中方式?
文章目录 面向对象相对于面向过程的优势? java创建对象的4中方式? 面向对象相对于面向过程的优势? 答: 面向过程: 面向过程是一种自顶向下的编程. 面向过程优点:性能比面向对象高,因为类调用时需 ...
- python属于面向对象的还是面向过程的呀-python中的面向对象和面向过程
一.面向对象和面向过程 一.什么是面向过程 核心是过程二字:面向过程是一种流水线的工作流程,是先做什么在做什么 二.什么是面向对象 核心 是对象二字:是一种编程思想,上帝思维,一切皆对象,编程中负责调 ...
- 函数式编程、面向对象编程、面向过程编程
函数式编程: 它属于"结构化编程"的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用.举例来说,现在有这样一个数学表达式. 1. 代码简洁,开发快速 函数式编程大量使用函数, ...
- 云计算 java go c_面向对象编程的面向过程表示:c java go
题目就这么抽象~.~其实一点都不抽象,老师以前也说过吧,面向对象就是建立在面向过程的基础上的. 下面这些主要是能让大家吸收一些较新鲜的编程思路,对于嵌入式编程大有裨益,对理解面向对象的底层封装全新的认 ...
- 面向对象编程与面向过程编程
文章目录 一.什么是面向对象编程? 二.面向对象的特点是什么? 1.在上面的例子中,面向对象的特性是怎么表现出来的呢? 2.什么时候适合使用面向对象 三.Js 中的面向对象 1.对象包含什么 2.一些 ...
- 困扰?什么是面向对象什么是面向过程
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 相信很多初次学习编程的计算机小白或者入坑的开发的萌新,会被这两个概念折磨的欲仙欲死,说实话笔者在初次接触的时候也是被搞得头疼但是迫于学 ...
- 什么是面向对象编程和面向过程编程
一.先来两小段通俗解释 1.面向过程(Procedure Oriented 简称PO :如C语言):(流程图) 从名字可以看出它是注重过程的.当解决一个问题的时候,面向过程会把事情拆分成: 一个个函数 ...
- 浅谈面向对象编程与面向过程编程
面向对象编程 面向对象编程是一种更加复合人们思维方式的编程思想.在现实生活中存在许多不同种类的事物,但是这些事物之间存在着某种联系,我们在使用程序模拟实现这些事物时,就可以通过对象的形式对其进行描述. ...
最新文章
- sqlite 使用 cte 及 递归的实现示例
- 人脸识别python face_recognize_【python+face_recognition】人脸识别初始
- mongodb数据库在centos 下启动
- 深圳蛇口人民医院办理健康证,免费体检,2017年后国家承担体检费用
- 【习题 3-1 UVA - 1585】Score
- python变量未定义_引入模块的全局变量未定义
- IntelliJ IDEA 将 Maven 构建的 Java 项目打包
- 《数据结构与算法》——线性表之顺序表(SqList)总结
- 谷歌浏览器将网页保存为图片或者pdf
- s3cmd 安装使用指南
- 从战略到执行:业务领先模型 BLM 战略篇「战略意图」
- IARPA启动“奥丁”项目,发展生物特征识别技术
- 杭电1069 Monkey and Banana
- Python实例浅谈--Python与C/C++相互调用
- python爬虫技术可以干什么-利用爬虫技术能做到哪些很酷很有趣很有用的事情?...
- ResNet50网络结构
- 使用neon实现RGB888转RGB565
- 贪心:Fence Repair、Saruman's Army
- 手把手教你win10下安装Anaconda
- java telnet透传_透传模式DTU不能连接到TCP_Server
热门文章
- html表格里的超链接点不了,Excel如何添加和取消超链接 Excel超链接打不开是怎么回事...
- python compare excel_python简单操作excle的方法
- 【Linux分享】Linux常用命令+教程分享
- FBV(function base views) 顾名思义基于函数的视图类 CBV(class base views)基于类的视图类
- Pycharm 专业版 导入系统pip安装的包
- python大数据工程师 培训_大数据工程师学习之路
- c中session的用法
- java动态交叉表,SqlServer如何生成动态交叉表查询
- 十六进制转化为十进制
- 魔戒(思维+bfs)