【重构笔记】重构手法之重新组织数据

1 Self Encapsulate Field(自封装字段):如果你直接访问一个字段后与字段之间的耦合关系变得笨拙,那么封装这个字段。
间接访问变量的好处:子类可以通过覆写一个函数而改变获取数据的途径,还可以实现延迟初始化(在用到的时候才对变量初始化)
直接访问变量的好处:代码简单易于阅读。
在变量所在类中是否使用间接访问,说法不一。如果你想访问超类中的一个字段,而且想在子类中对这个变量修改数值,那就需要使用Self Encapsulate Field。
2 Replace Data Value with Object(建立数据对象):当你有一个数据项,需要与其他数据和行为一起使用才有意义,那么你把他们一起打包成一个对象。例如:一开始你可能会用一个字符串来表示”电话号码“的概念,但是随后你就会发现,电话号码需要“格式化”、“抽取区号”之类的特殊行为。此时你应该应该把数据值编程对象。
3 Change Value to Reference(将值对象改为引用对象):有时候,你会从一个简单的值对像开始,在其中保存少量不可修改的数据。而后,你可能希望给这个对象加入一些可修改的数据,并确保所有的修改都能影响这个对象。这个时候就需要Change Value to Reference。
4 Replace Array with Object(以对象取代数组)
5 Duplicate Observed Data(复制被监控数据):观察者设计模式(分层设计模式/MV设计模式)的实现(例如用户界面作为一个观察者,业务数据是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在界面上),把公用数据复制到领域类中,并保持逻辑层与表现层的数据同步。
6 Change Unidirectional Association to Bidirectional(将单向关联改为双向关联):如果两个类都需要使用对方特性,并其间只有一条单向连接,则添加一个反向指针,并使修改函数能够同时更新两条连接。
7 Replace Magic Number with Symbolic Constant(以字面常量取代魔法数)
8 Encapsulate Collection(封装集合):返回该集合的一个只读版本,并在这个类中提供添加/移除集合元素的方法。



001

002

003

004

005




---------------------------------------------------------------------------------------------------------------
现在发送在CSDN上的文章都能在手机端查看啦,走路上班、闲暇之余可以看看手机,共勉共进!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值