重构——66塑造模板函数(Form Template Method)

简介: 塑造模板函数(Form Template Method) 1、你有一些子类,其中相应的某些函数以相同顺序执行类似的操作,但各个操作的细节上有所不同 2、将这些不同的操作细节分别放进独立函数中,并保持它们都有相同的签名,于是原函数也就变得相同了。然后将原函数上移至超类

塑造模板函数(Form Template Method)

1、你有一些子类,其中相应的某些函数以相同顺序执行类似的操作,但各个操作的细节上有所不同

2、将这些不同的操作细节分别放进独立函数中,并保持它们都有相同的签名,于是原函数也就变得相同了。然后将原函数上移至超类

一、动机

Template Method

二、做法

1、在各个子类中分解目标函数,使分解后的各个函数要不完全相同,要不完全不同

2、运用Pull Up Mehtod将各个子类中完全相同的函数上移至超类

3、对于那些完全不同的函数,实施Rename Method,使这些函数的签名完全相同

4、修改上述所有签名后,编译并测试

5、运用Pull Up Method将所有原函数逐一上移至超类。在超类中将那些代表各种不同操作的函数定义为抽象函数

6、编译,测试

7、移除其它子类中的原函数,每删除一个,编译并测试

目录
相关文章
|
7月前
|
设计模式 算法
设计模式9 - 模板方法模式【Template Method Pattern】
设计模式9 - 模板方法模式【Template Method Pattern】
22 0
|
前端开发
前端工作总结157-赋值给form对象
前端工作总结157-赋值给form对象
63 0
前端工作总结157-赋值给form对象
重构——59构造函数本体上移(Pull Up Constructor Body)
构造函数本体上移(Pull Up Constructor Body):你在各个子类中拥有一些构造方法,它们的本体几乎完全一致;在超类中新建一个构造函数,并在子类构造函数中调用它
1616 0
重构——63提炼超类(Extract Superclass)
提炼超类(Extract Superclass):两个类有相似特性;为这两个类建立一个超类,将相同的特性搬移到超类
1670 0
重构——40引入Null对象(Introduce Null Object)
引入Null对象(Introduce Null Object):你需要再三检查某对象是否为null;将null值替换为null对象
1943 0
重构——53以工厂函数取代构造函数(Replace Constructor with Factory Method)
以工厂函数取代构造函数(Replace Constructor with Factory Method):你希望在创建对象时不仅仅是做简单的构造动作;将构造函数替换为工厂函数
1532 0
重构——1提炼函数(Extract Method)
提炼函数(Extract Method):你有一段代码可以被组织在一起并独立出来,将这段代码放进一个独立的函数中,并让函数名称解释该函数的用途。
1218 0
重构——12提炼类(Extract Class)
提炼类(Extract Class):并发和事务的风险;某个类做了两个类做的事;建立一个新类,将相关的字段和函数从旧类搬移到新类
1901 0
重构——16引入外加函数(Introduce Foreign Method)
引入外加函数(Introduce Foreign Method):你需要为提供服务的类增加一个函数,但你无法修改这个类;在客户端建立一个函数,并以第一参数形式传入一个服务类实例
1615 0
重构——2内联函数(Inline Method)
内联函数(Inline Method):一个函数本体与名称同样清楚易懂,在函数调用点插入函数本体,然后移除该函数。
1231 0