笔记-大话设计模式-10 模板方法模式
2015-09-08 16:47
295 查看
当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理。
模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
模板方法模式就是提供了一个很好地代码复用平台。通过模板方法模式把这些行为搬移到单一的地方,这样就帮助子类摆脱重复的不变行为的纠缠。
代码例子:
测试调用:
模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
模板方法模式就是提供了一个很好地代码复用平台。通过模板方法模式把这些行为搬移到单一的地方,这样就帮助子类摆脱重复的不变行为的纠缠。
代码例子:
abstract class AbstractClass { public abstract void Operation1(); public abstract void Operation2(); public void TemplateMethod() { Operation1(); Operation2(); Console.WriteLine("这是TemplateMethod"); } }
class AClass : AbstractClass { public override void Operation1() { Console.WriteLine("具体类A方法1实现"); } public override void Operation2() { Console.WriteLine("具体类A方法2实现"); } }
class BClass : AbstractClass { public override void Operation1() { Console.WriteLine("具体类B方法1实现"); } public override void Operation2() { Console.WriteLine("具体类B方法2实现"); } }
测试调用:
AbstractClass ac; ac = new AClass(); ac.TemplateMethod(); Console.WriteLine(Environment.NewLine); ac = new BClass(); ac.TemplateMethod();
相关文章推荐
- spring_150904_hibernatetemplate
- 分布式系统性能测试框架
- Ubuntu 用vsftpd 配置FTP服务器
- TCP、UDP详解
- Unity编辑器定制和开发插件
- 百度面试题 求字符串中不含重复字符的最长子串长度
- iOS事件处理机制
- centos 启用ftp功能
- 如何截断SQL Server2008+事务日志空间
- 让Mac OS X的终端多姿多彩
- sql server2008R2 无法连接到WMI提供程序。你没有权限或者该服务器无法访问
- Android 学习第4课,一些小知识
- GRUB2相关概念
- java接口开发的的注意事项
- j2EE一个简单的servlet实例
- 员工案例增删改查
- JAVA学习——RandomAccessFile
- 线程互斥锁控制
- Python文件夹操作
- Android设置多个闹钟