重构——66塑造模板函数(Form Template Method)-阿里云开发者社区

开发者社区> inzaghi1984> 正文

重构——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、移除其它子类中的原函数,每删除一个,编译并测试

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
[转帖]访问Formview模板内控件
在访问Formview模板内控件时遇到两个问题。 一是调用语句过早而访问不到Formview模板内控件,二是究竟用什么方法或属性来访问。 比如说其中有一个ID为UserNameTextBox的TextBox,我们要把当前已登陆用户的用户名传给它怎么做呢? 注意:formview在Page_Load的时候是不会呈现外观的,也就不会有TextBox了,所以在Page_Load里写程序无论怎么写也找不到formview1控件模板里的子控件UserNameTextBox。
714 0
Serverless 解惑——函数计算如何访问 Mongo 数据库
本文介绍如何快速实现函数计算访问 Mongo 数据库。
1033 0
Confluence 6 导入模板的定义
模板是一个预先定义的页面,这个预先定义的页面可以在创建新页面的时候预先载入。模板能够给一个页面统一的样式或格式。 你可以在 Confluence 中创建你自己的模板,请查看页面 Create a Template 页面的相关内容。
778 0
Confluence 6 导入模板的备注
创建你自己的模板组件(template bundles)。你可以使用插件(add-on,也可以被称 plugin)来创建模板组件然后将这些模板组件上传到你的 Confluence 站点中。
721 0
C++语言基础 例程 函数模板
贺老师的教学链接 使用用函数模板 #include <iostream> using namespace std; template<typename T> //模板声明,其中T为类型参数 T max(T a,T b,T c) //定义一个通用函数,用T作虚拟的类型名 { if(b>a) a=b;
808 0
JavaScript创建对象(四)——组合使用构造函数和原型模式
在JavaScript创建对象(三)——原型模式中,我们阐述了原型模式存在的两个问题:一是没办法通过构造函数初始化对象属性,二是共享引用类型的数据导致数据错乱。
825 0
JSTL 模板中 <c:forEach> 标签详解
详解 标签的语法定义如下所示。                                                 body content                                标签具有以下一些属性:l            var:迭代参数的名称。
803 0
可变参数函数模板
16.53 编写你自己版本的print函数,并打印一个、两个及五个实参来测试它,要打印的每个实参都应有不同的类型。 #include #include using namespace std; template ostream& print(ostream &os,const T...
522 0
+关注
inzaghi1984
金融IT技术人员
223
文章
62
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载