首页 > 其他分享 >重构:改善既有代码的设计 第七章 读书笔记

重构:改善既有代码的设计 第七章 读书笔记

时间:2022-11-30 10:58:22浏览次数:39  
标签:重构 封装 变量 记录 读书笔记 修改 第七章 集合 函数

第7章 封装
7.1 封装记录(Encapsulate Record)

  曾用名:以数据类取代记录;

  做法:1- 对持有记录的变量使用封装变量,将其封装到一个函数中。 记得为这个函数取一个容易搜索的名字。

               2- 创建一个类,将记录包装起来,并将记录变量的值替换为该类的一个实例。然 后在类上定义一个访问函数,用于返回原始的记录。修改封装变量的函数,令 其使用这个访问函数。

7.2 封装集合(Encapsulate Collection)

  动机:集合的成员变量可以直接被修改,而封装它的类则全然不知,无法介入。

为避免此种情况,我会在类上提供一些修改集合的方法——通常是“添 加”和“移除”方法。这样就可使对集合的修改必须经过类,当程序演化变大时, 我依然能轻易找出修改点。

7.3 以对象取代基本类型(Replace Primitive with Object)

 

 

7.4 以查询取代临时变量(Replace Temp with Query)

 

 

7.5 提炼类(Extract Class)


7.6 内联类(Inline Class)

  和提炼类相反的操作
7.7 隐藏委托关系(Hide Delegate)

      代理操作,还是直接引用

 

 


7.8 移除中间人(Remove Middle Man)

  和隐藏委托关系是相反的操作
7.9 替换算法(Substitute Algorithm)

  使用算法简化代码

标签:重构,封装,变量,记录,读书笔记,修改,第七章,集合,函数
From: https://www.cnblogs.com/parent-absent-son/p/16937718.html

相关文章

  • 《Unreal大象无形》读书笔记
    一、对象销毁 纯C++类销毁尽量不要使用new、delete方案,可以使用智能指针。智能指针会使用引用计数来完成自动的内存释放。使用MakeShareable函数可以来转化普通指针为智能......
  • C#设计模式读书笔记之设计模式的设计原则
    设计模式的设计原则:(重要性从上往下排列)开闭原则:对扩展开放,对修改关闭依赖倒转原则:高层模块不应该依赖底层模块,它们都应该依赖抽象;要针对抽象层编程,而不要针对具体类编程。......
  • 《Go 语言并发之道》读书笔记(七)
    今天这篇笔记我们来学习Go限流限流是分布式系统中经常需要用到的技术,因为我们让请求没有限制,很容易就出现某个用户开很多线程把我们的服务拉跨,进而影响到别的用户。限流......
  • 要想后期修改少,代码重构要趁早
    摘要:在敏捷中,让设计简单化,必须让设计从简单开始,然后变得成熟。要做到这一点,重构是唯一的出路。本文分享自华为云社区《敏捷技术实践之重构》,作者:华为云PaaS服务小智。前......
  • 重构:改善既有代码的设计 第六章 读书笔记
    第6章第一组重构6.1提炼函数(ExtractFunction)抽取函数;6.2内联函数(InlineFunction)和提炼函数相反操作;6.3提炼变量(ExtractVariable)动机:表达式有......
  • 第七章 外存与I/O设备
    7.1外围设备概述外围设备的功能是在计算机和其他机器之间,以及计算机与用户之间提供联系。由于外围设备的地位越来越重要,主要介绍硬磁盘。一、外围设备的一般功能外围设......
  • 图数据☞重构子图
    图数据☞重构子图​​图数据☞重构子图​​​​一、查找需要合并的概念​​​​二、扩展概念查看一度关联关系​​​​三、新建一个节点​​​​四、将节点列表合并到第一个......
  • 第七章 Pod控制器
    1关于Pod控制器1.1控制器与Pod对象Pod控制器资源通过持续性的监控集群中运行着的Pod资源对象来确保受其管控的资源严格符合用户期望的状态,例如资源副本的数量要精......
  • 读书笔记——《雾都孤儿》
    摘要:这篇笔记是记录关于我正在阅读的《雾都孤儿》,在这里我将会记录阅读时的感想感悟与好句摘抄,同时可能会写一些小随笔,读书或者阅读是一条漫长的路,在路上可能会遇到很多的......
  • 《架构师修炼之道》读书笔记
    学点架构师思维和技能总是有益的。架构是关于软件系统的一系列重大设计决策的有机整体,实现期望的质量属性和业务目标。架构是站在系统全局视角思考和构建软件,解决问题......