代码重构之重新组织数据

1.引言

最近看代码重构的数据遇到问题了。很多重构手法都不是很明白,于是捡自己遇到的能理解的,记录下。

2.正题

8.1 replace Data Value with Object(以对象取代数据值)

将基本类型数据封装成对象数据。此重构手法主要是方面以后的拓展,实际项目中不是很常用。理解下意思就行。

8.2 replace Array with Object(以对象取代数组)

假如一个数据保存的是不同属性的值。可以用对象来代替数组。一种封装的思想。

8.3 Encapsulate Filed(封装字段)

将属性字段设置成private,然后提供get/set 方法。之所以设置成私有而不是public。因为这样可以降低程序的耦合性。虽然我经常喜欢写成public的。但是以后还是注意吧。

9.1 Decompose Conditional(分解条件表达式)

条件逻辑往往是造成代码难以阅读的罪魁祸首。我自己写代码的时候有的甚至能嵌套3。4个if/else。假如不注意,那么每个分支的代码会很大难以阅读。。所以当分支的 代码太大,要单独的写一个方法来处理。

9.2 Consolidate Conditional Expression(合并条件表达式)

将有些不必要的if/else 合并成一个。

合并重复代码

 public void test(){
        int total;
        if (isPass()){
            total++;
            send();
        }else {
            total--;
            send();
        }
    }

一般写if/else代码的时候,先写if,然后在写else。假如嵌套多了的话,为了避免错误,重复了就重复了。这是我以前写代码的思想。。但是现在当发现if/else 代码块有重复的部门必然会想着怎么提出来。避免重复。

9.3 Remove Control Flag(移除控制标记)

在做for循环或者判断的时候。能用break.return,continue尽量用这些控制标记,能减少不必要的循环。

9.4 以卫语句代替嵌套语句。

条件表达式通常有俩种表现形式。第一种是:所有的分支都是正常的业务逻辑;第二种是:只有一种业务逻辑是正常的。。第一种:通常就不得不用if...else.....; 第二种:如果某一个条件极其的罕见,就应该单独检查该条件。当条件位置正的时候立马retrun。这样的单独检查成为“卫语句”。。判断某一个是不是符合要求的值,也是一样。在方法开始的时候就给予判断,true继续执行,false立马结束掉循环。

9.5 多态 简化条件表达式,或者代替switch

9.6 使用三目表达式代替 if或者if/else。

三目表达式能极大的简介代码。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,219评论 25 708
  • 《重构》读书笔记 总览 第一部分 第一章从实例程序出发,展示设计的缺陷,对其重构可以了解重构的过程和方法。 第二部...
    白桦叶阅读 2,537评论 2 5
  • “整洁的代码简单直接。整洁的代码如同优美的散文。整洁的代码从不隐藏设计者的意图,充满了干净利落的抽象和直截了当的控...
    活这么大就没饱过阅读 1,877评论 0 4
  • Android及iOS的webview的引擎都是webkit,对H5提供支持.WebView可以使得网页轻松的内嵌...
    NapleC阅读 6,046评论 6 31
  • 周六,晴天,适合骑行,早上九点,我们一行四人,经津洋口、两河口、方家湾、王家棚、两河口,目的地郑家榜。来回54KM...
    燕尾无声阅读 582评论 0 1

友情链接更多精彩内容