重构:封装记录

本文介绍了面向对象编程中的重构技巧,通过将简单的数据记录转化为具有封装特性的数据类,提升代码的可读性和维护性。重构步骤包括创建数据类、定义访问函数、测试、逐步替换记录调用,以及考虑对复杂字段的进一步封装。此过程旨在优化代码结构,便于后续的开发和维护。
摘要由CSDN通过智能技术生成

曾用名:以数据类取代记录(Replace Record with Data Class)

//重构前

organization = {name: "Acme Gooseberries", country: "GB"};

//重构后

class Organization{

        constructor(data){

                this.name = data.name;

                this._country = data.country;

        }

        get name(){return this._name;}

        set name(arg){this._name = arg;}

        get country(){return this._country;}

        set country(arg){this._country = arg;}

}

做法:

1、对持有记录的变量使用【封装变量】,将其封装到一个函数中。

记得为这个函数取一个容易搜索的名字

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

3、测试

4、新建一个函数,让它返回该类的对象,而非那条原始的记录。

5、对于该记录的每处使用点,将原先返回记录的函数调用替换为那个返回实例对象的函数调用。使用对象上的访问函数来获取数据的字段,如果该字段的访问函数还不存在,那就创建一个,每次更改之后运行测试。

        如果该记录比较复杂,例如是个嵌套解构,那么先重点关注客户端对数据的更新操作,对于读取操作可以考虑返回一个数据副本或只读的数据代理。

6、移除类对原始记录的访问函数,那个容易搜索的返回原始数据的函数也要一并删除。

7、测试

8、如果记录中的字段本身也是复杂结构,考虑对其再次应用【封装记录】或【封装集合】手法 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值