《重构2》第七章-封装

简介: 《重构2》第七章-封装

封装的意义,在于提炼相同的代码逻辑,借以复用!
同时,类,也是用来隐藏部分信息的好方法!

1.封装记录

通俗说法就是,将变量对象或需要处理的数据,或不想改变原有值的对象数据,将其封装在一个类中,暴露各种获取方法,产生逻辑所需要的各种数据!
多用于数据转化、深拷贝、格式化数据等等...
同时缺点也明显,在复制巨大数据结构时,性能消耗大,按需使用!

2. 封装集合

封装记录后返回只读数据/副本数据,即深拷贝后的新数据,避免外部操作,引发数据源的变动;
基于以上操作,你需要在类中添加新增/修改/移除函数,用于修改函数树脂,避免在外部操作数据!

3.以对象代替基本类型

在重构一中,也称为以类取代类型码
当一份数据不局限于展示时,就可以为其创建一个类,尽管初期很繁琐,的却,但是,当业务越来越复杂,这个类的好处就越明显!
给这个数据一个取值函数,这是基础的!

4.以查询取代临时变量

某些只需要使用一次的计算,且不再改变的变量,可以直接忽略声明,直接在逻辑中以函数代替

5.提炼类/内联类

提炼类和内连类是相反的操作
提炼类:当一个类中函数过于庞大,过于多时,或让这个类难以被人理解,可以考虑将部分功能拆分为更为具体的类,活着提炼一部分超类出来!
内联类:当一个类中的函数逐渐被优化、被废弃、被提炼,最终只剩下为数不多的细小的功能,可以考虑将类废弃,并将函数直接放到具体的代码逻辑中

6.隐藏委托关系/移除中间人

简而言之,就是常见一个类,将客户端的链式调用,放到一个函数中,可以端只需要带哦用一个类就可以获取到想要的值,而不用关心数据之间的链式调用
例如:客户端需要知道某人的经理是谁
后端:
Class Person

constrctor(name){
  this._name = name
}
get name(){return this.name;}
get department(){return this._department;}
set department(arg){this._department = args;}

Class Deparment


get manager(){return this._manager;}
set manager(arg){this._manager = args;}

客户端调用:

manager = aPerson.department.manager;

优化后:
Class Person

get manager(){return this._department.manager;}

客户端调用

manager = aPerson.manager;

移除中间人:这种操作是按代码情况而定,当不需要隐藏委托关系时,就可以去除中间人。
为什么要移除中间人,当隐藏的委托关系过多时,就完全变成了一个数据中转站,这并不是我们想要的操作,我们要的是轻量级,这样沉重的操作就需要被优化调!

7.替换算法

将一些复杂的算法,拆分为多了小的算法,最后组合长想要的数据,算法也是需要根据时代去变化的,比如,es6中的includs方法就很好的代替了es5中的find方法,不是吗?

目录
相关文章
|
2天前
|
安全 Java 数据安全/隐私保护
|
2天前
|
设计模式 API 数据安全/隐私保护
探索设计模式的魅力:外观模式简化术-隐藏复杂性,提供简洁接口的设计秘密
外观模式是一种关键的设计模式,旨在通过提供一个简洁的接口来简化复杂子系统的访问。其核心价值在于将复杂的内部实现细节封装起来,仅通过一个统一的外观对象与客户端交互,从而降低了系统的使用难度和耦合度。在软件开发中,外观模式的重要性不言而喻。它不仅能够提高代码的可读性、可维护性和可扩展性,还能促进团队间的协作和沟通。此外,随着业务需求和技术的发展,外观模式能够适应变化,通过修改外观对象来灵活调整客户端与子系统之间的交互方式。总之,外观模式在软件设计中扮演着举足轻重的角色,是构建高效、稳定且易于维护的软件系统的关键
77 1
探索设计模式的魅力:外观模式简化术-隐藏复杂性,提供简洁接口的设计秘密
|
23小时前
|
设计模式 存储 缓存
第三篇 结构型设计模式 - 简化复杂系统的结构
第三篇 结构型设计模式 - 简化复杂系统的结构
|
11月前
|
设计模式 Java
【Java设计模式 规范与重构】 一 重构的目的、内容、时机、方法
【Java设计模式 规范与重构】 一 重构的目的、内容、时机、方法
126 0
|
11月前
|
程序员 测试技术
《重构2》第十章-简化条件逻辑
《重构2》第十章-简化条件逻辑
306 0
|
11月前
|
数据处理
《重构2》第六章-重构基础
《重构2》第六章-重构基础
281 0
|
11月前
《重构2》第十二章-继承
《重构2》第十二章-继承
94 0
|
设计模式 算法 Java
如何优雅的用策略模式,取代臃肿的 if-else 嵌套,看这篇就够了
如何优雅的用策略模式,取代臃肿的 if-else 嵌套,看这篇就够了
940 0
如何优雅的用策略模式,取代臃肿的 if-else 嵌套,看这篇就够了
|
Java
编程之代码抽象三原则
编程之代码抽象三原则,这三原则仔细推敲,与23种设计模式不无关系。 23种设计模式,在此我不做详细介绍和说明,因为我目前也正在学习,在学习设计模式的时候,有一点非常重要, 引用王阳明先生的理念“知行合一”,将理论同实践集合起来,这样就不空中楼阁了。
1312 0