常见的项目重构的方法:

  1. 梳理并且分解继承体系:继承是面向对象设计语言中一个很重要的特性,特可以减少子类的代码量。同时继承也会被误用。今天为了一个功能添加了一个小类,也许明天还会为了另外一个功能添加另外一个类。时间一长你就会发现,这个类简直就是惨不忍睹。代码会出现大量的重复,而且修改也会变得很困难。要修改这个类就要把这个类中相关的变量或者功能梳理清楚,分别给他们建立相应的父类,然后在继承下去。他们分别属于不同的功能体系,必须要有相应的继承体系。

  2. 将过程化的代码转化为对象设计:将数据记录编程对象,将大块的行为分成小块并且将行为移入相关的对象之中。常见的场景,类中有很长很长的函数和很少的数据。我们要做的是将这个很长的含糊提炼出来放到一个单独的类中来处理。

  3. 将程序分层,将数据、界面、逻辑分开:这个就要提到经典的MVC模型,这个模型的价值就在于:它想用户界面和逻辑处理分开了。即界面只包含展示所用的东西;逻辑层只包含逻辑代码而不包含界面的内容。

  4. 提炼继承体系:一个类做了很多的事情,其中有些事情是以大量的表达式来完成的,我们应该考虑为这个情况建立起相应的继承体系,使每一个子类包含一种特殊的情况。刚开始时,我们设计的时候,是一个类实现一种功能或者一个概念,但是随着时间的推移方案的改进,可能这个类添加了另外一个概念,变成了两个概念,包含两种功能,随后变成三个四个五个等。最后这个类变得就会完全陌生了,失去了原来我们设计这个类的初衷了。

重构-关于整个项目的重构相关推荐

  1. 计算机基础项目任务教学重构,面向计算思维培养的中职课程项目式重构研究

    摘要: 21世纪以来,随着信息技术的飞速发展,有专家指出,计算思维应该是继实验思维和理论思维之后人们应该具备的第三种思维;我国2017年发布的高中信息技术课程标准中明确提出了计算思维的概念,并将其作为 ...

  2. 代码重构(五):继承关系重构规则

    陆陆续续的发表了多篇关于重构的文章了,还是那句话,重构是一个项目迭代开发中必不可少的一个阶段.其实重构伴随着你的项目的整个阶段.在前几篇关于重构的文章中我们谈到了函数的重构.类的重构.数据的重构以及条 ...

  3. 什么是重构,什么不是重构

    英文原文:What Refactoring is, and what it isn't,翻译:外刊IT评论 有时候,会有程序员跑到我这里说他们不喜欢某个东西的设计,"我们需要给它来个全面的重 ...

  4. 重构 java代码_java代码重构的方法学习

    2,8阅读 第一章  第一个案例 在此案例中使用了, 方法的提取(extract method),方法的移动(move method),临时变量的清除,变量及函数名重构,switch类型重构(repl ...

  5. java代码重构工具_代码重构什么意思 Java代码重构的几种模式

    指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果. 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方.在极限编程的方法学中,重构需要单元测试来支持. 在软件工程 ...

  6. java代码重构的思路Java代码重构的几种模式

    Java代码重构的几种模式 Java代码的重构模式主要有三种:重命名方法重构模式.引入解释性变量重构模式.以查询取代临时变量重构模式重命名方法重构模式建议执行如下的步骤来完成:1.建立一个具有新名称的 ...

  7. 怎么把HTML网页重构为VUE,前端VUE重构之路

    今年8月份进入前端重构组,用vue重构jq老工程,记录一下在重构过程中遇到的问题.解决方法和一些心得体会吧.项目技术栈:Vue + Vue-Router + Vuex, UI组件库用的有赞的vant ...

  8. 【重构篇js案例解析重构】第一章 重构的原则

    重构的原则 重构代码示例 重构前的代码 var plays = {"hamlet": { "name": "Hamlet", "t ...

  9. 配电网重构matlab程序,配电网络重构matlab代码

    [实例简介] 配电网络重构matlab代码 对初学者有一定用处 [实例截图] [核心代码] 配电网络重构matlab代码 └── 配电网络重构matlab代码 ├── IEEE33 │   ├── c ...

最新文章

  1. VS2010下编译OpenCV2.4.6静态库
  2. 新手向:Vue 2.0 的建议学习顺序
  3. 公司间采购的后台配置备忘录
  4. CentOS 初体验二十一:redis常用命令:String
  5. 现在要吃软饭的,都这么明目张胆了吗?
  6. 田渊栋:业余做研究的经验
  7. vsftpd安装、多用户配置
  8. Spring 笔记(一)概念梳理
  9. 亚马逊+纽约大学开源图神经网络框架DGL:新手友好,与主流框架无缝衔接
  10. 三维扫描仪中投射模块/投影仪推荐
  11. 掌中革命--手机富媒体
  12. 如何查看服务器证书过期时间,如何看ssl证书过期
  13. 中国 省会 地级市 经纬度 city array
  14. linux使用单核_如何使用Linux还原单核计算机
  15. 使用gitee仓库管理项目中的一些常见小问题
  16. java web创建简易注册系统
  17. 随圆通中通脚步,阿里巴巴入股申通获14%股权!
  18. 武装我的“超强小黑”Thinkpad T400
  19. xhtml与html5的关系,xhtml与html5的区别是什么?
  20. php语言查找字符串是否存在,PHP语言查找字符串是否存在的方法

热门文章

  1. 编码孔径成像-编解码孔径的设计(MURA均匀冗余阵列)
  2. 移动相关术语:MSISDN
  3. PHP怎么做成Qq空间相册,qq空间如何上传本地视频 相片制作视频传到QQ空间
  4. 软件架构师 第一部分 基础篇 第六章 架构特性的范围
  5. 尖端AI学术会议NIPS改名风波:拒绝性别歧视
  6. BUUCTF 面具下的flag
  7. 修改哪个请求头可以伪造请求ip_基于EtherNet/IP实现欧姆龙NX系列PLC通信
  8. 遗传进展系列 | 1. 回归系数 相关系数 遗传力的关系
  9. ae教程 (五)滤镜特效 (四)音频特效
  10. WRF-Hydro模式