引入本地扩展(Introduce Local Extension)
你需要为服务类提供一些额外函数,但你无法修改这个类;建立一个新类,使它包含这些额外函数,让这个类扩展成为源类的子类或者包装类
一、动机
1、需要的额外函数超过俩,Introduce Foreign Method Hold不住了
2、包装类和子类怎么选择?
二、做法
1、建立一个扩展类,将它作为原始类的子类或者包装类
2、在扩展类中加入转型构造函数
3、在扩展类中加入新特性
4、根据需要,将源对象替换为扩展对象
5、将针对原始类定义的所有外加函数搬移到扩展类中
6、重新组织数据