作法(Mechanics)
- 在absorbing class(合并端的那个class)身上声明source class的public协议,并将其中所有函数委托(delegate)至source class。
- ==》如果[以一个独立接口表示source class函数]更合适的话,就应该在inlining之前先使用Extract Interface(341)。
- 修改所有source class引用点,改而引用absorbing class。
- ==》将source class声明为private,以斩断package之外的所有引用可能。
- 同时并修改source class的名称,这便可使编译器帮助你捕捉到所有对于source class的“dangling references”(虚悬引用点)。
- 编译,测试。
- 运用Move Method(142)和Move Field(146),将source class的特性全部搬移到absorbing class。
- 为source class举行一个简单的葬礼。
|