![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
重构
大道至简@EveryDay
生活不止眼前的苟且,还有诗和远方的田野
展开
-
重构系列-函数
1 短小精悍 代码块和缩进 if,else,while语句等其中代码块应该只用一行,改行大抵是一个函数调用的语句 2 只做一件事 要判断函数是否不只做一件事,判断的方法是是否能再拆出一个函数。 3 每个函数一个抽象层级 函数中的语句都要在同一抽象层级。读程序的时候就像一系列TO起头的段落,每一段都描述当前抽象层级,并引用下一抽象层级后续TO起头段落。 4 switch语句 上图的问题: 太长,出现新的的雇员类型,会变得更长。 明显做了不止一件事 违反单一职责原则,因为有好几个修改他的理由 违反开闭原原创 2021-09-11 10:39:38 · 106 阅读 · 0 评论 -
重构系列-有意义的命名
1,名副其实。如果名称需要用注释来补充,就不算是名副其实 2,避免误导。避免留下隐藏代码本意的错误线索。比如hp,unix,sco等不该做变量名 3,做有意义的区分。 反例如下 getActiveAccount(); getActiveAccounts(); getActiveAccountInfo(); 4,使用读的出来的名称。 5,使用可搜索名称。 单字母名称或者数字常量很难从一大篇文字找出来。 6,避免使用编码。 7,类名和对象名应该是名词或者名词短语。 8,方法名应当是动词或者动词短语。 9,不要原创 2021-09-11 09:57:21 · 90 阅读 · 0 评论 -
重构系列-整洁代码是什么样的
1,简单代码规则 能通过所有的测试 没有重复代码 体现系统中的全部设计理念 包括尽量少的实体,比如类,方法,函数等 2,消除重复和提高表达力原创 2021-09-10 17:44:45 · 63 阅读 · 0 评论 -
重构改善既有代码的设计《八》重新组织数据
1,Self Encapsulate Field(自封装字段) 你直接访问一个字段,但是与字段之间的耦合关系逐渐变得笨拙 为这个字段建立取值/设值函数,并且以这些函数来访问字段 private int _low,_high; boolean includes(int arg){ return arg>=_low && arg<=_high; ...原创 2020-02-02 15:38:41 · 193 阅读 · 0 评论 -
重构改善既有代码的设计《七》在对象之间搬移特性
7.1Move Method (搬移函数) 你的程序中,有个函数与其所驻类之外的另一个类有过多的交流,调用后者,或者被后者调用 在该函数最常引用的类中建立一个有类似行为的新函数,将旧函数单纯的变为一个委托函数或者将旧函数完全删除 1,动机 重构理论的支柱:搬移函数 如果一个类有太多行为,或者一个类和另外一个类因为太多合作而形成高度耦合的关系,就应该搬移函数,通过这种手段可以使系统的类更加简单 2...原创 2020-01-19 11:48:00 · 147 阅读 · 0 评论 -
重构改善既有代码的设计《六》重新组织函数
6.1Extract Method(提炼函数) 1,你有一段代码可以被组织在一起并独立出来 将则这段代码房间一个独立函数中,并让函数名称解释该函数的用途 void printData(double amount){ printBanner(); //print detail System.out.println("name:"+_name); ...原创 2020-01-15 15:13:14 · 138 阅读 · 0 评论 -
重构改善既有代码的设计《五》重构列表
5.1重构的记录格式 重构手法的五部分 1,名称,建造一个重构词汇表 2,简短的概要,简单介绍此重构手法的适用场景以及它所做的事。这部分可以帮助你快速招的你所需要的重构手法 介绍这个重构能够解决的问题,介绍你该做的事情。一副速写图,简单展现重构前后的示例 3,动机,为什么要重构?什么情况下不该使用这个重构 4,做法,简明扼要的一步一步介绍如何进行重构 尽量将重构的每个步骤都写得简短 5,范例,以一...原创 2020-01-15 10:40:51 · 113 阅读 · 0 评论 -
重构改善既有代码的设计《四》构筑测试体系
4.1自测试代码的价值 1,每一个类都应该有一个测试函数,并以他来测试自己的这个类 2,确保所有的测试自动化,让他们检查自己的测试结果 3,一套测试就是一个强大的bug侦测器,能够大大缩短查找bug所需要的时间 ...原创 2020-01-15 10:18:47 · 128 阅读 · 0 评论 -
重构改善既有代码的设计《三》代码的坏味道
3.1Duplicated Code(重复代码) 1,同一个类的两个函数含有相同表达式,采用Extract Method 提炼重复代码,然后让这两个地点都调用提炼出来的代码 2,两个互为兄弟的子类内含有相同表达式,要避免这种情况,只需对两个类使用Extract Method,然后Pull up Method,将它推入超类。如果只是类似并非完全相同,考虑使用模板方法设计模式 3,两个不相干的类出啊先...原创 2020-01-14 13:25:58 · 162 阅读 · 0 评论 -
重构改善既有代码的设计《二》重构原则
2.1 何谓重构 1,定义 名词形式:对软件内部结构的一种调整,目的是在不改变软件可观察的行为前提下,提高其可理解性,降低其修改的成本 动词形式:使用一系列重构的手法,在不改变软件可观察行为的前提下,调整其结构 2,目的 使软件更容易被理解和修改。你可以在软件内部做很多修改,但必须对软件的可观察的外部行为只造成很小的变化,或者没有变化,与之相对比的是性能优化,性能优化通常不会改变组件的行为(除了...原创 2020-01-14 00:02:01 · 115 阅读 · 0 评论 -
重构改善既有代码的设计《一》第一个案例
##1.1 起点 如果你发现子级需要未程序添加一个特性,而代码结构使你无法方便的达到目的,那么就先重构那个程序,使特性的添加比较容易的进行,然后再添加特性 ##1.2 ...原创 2020-01-13 21:19:48 · 254 阅读 · 0 评论