看《重构-设计模式》第八章 重新组织数据

8.1 自封装字段 为字段建立取值和设值函数,类似get_val(),set_val;

8.2 以对象取代数据值  将一些有关联的字段放在一个类或者结构体里 便于管理

8.3 将值对象改为引用对象  根据对象是否可变,大小来决定

8.4 将引用对象改为值对象  同上

8.5 以对象取代数组 当数组中的元素代表不同的东西,选择用一个对象来取代

8.6 复制“被监视数据” 当有些数据在GUI控件中,而领域函数需要访问这些数据,我们可以把数据复制到一个领域对象中,建立一个Observer模式,用以同步领域对象和GUI对象内的重复数据

良好的系统:将处理用户界面和处理业务逻辑的代码分开

8.7 将单向关联改为双向关联  当两个类都需要使用对方特性,但其间只有一个单向连接,我们可以添加一个反向指针,并使修改函数能够同时更新两条连接。做法:在被引用类中增加一个字段保存反向指针,决定哪个类控制关联关系,在被控端建立函数来负责更新反向指针

8.8 将双向关联改为单向关联  去掉不必要的关联

8.9 以字面常量代替魔法数  创建一个有意义的常量来代替数字

8.10  封装字段 对于类中pubic的字段,将其声明为private,并提供相应的访问函数和更新设值函数

8.11 封装集合 当函数返回集合,修改为函数返回该集合的一个可读副本,并在这个类中提供添加/移除集合元素的函数

8.12 用数据类取代记录  对于一些传统记录,可以新建数据类来存储,并提供相应的函数进行取值和设置值

8.13 以类取代类型码 将类中的数值码代替为类,目的增加可读性

8.14 以子类取代类型码  当类型码不可变且影响类的行为,采用子类取代这个类型码。

8.15 以state/strategy取代类型码 类型码影响了类的行为且无法通过继承手法消除它,采用状态对象取代类型码,目的也是为了增加可读性

8.16 以字段取代子类 当各个子类的差别是“返回常量数据”的函数身上,修改为将这些函数返回超类的字段,销毁子类。

 

8.16 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值