设计模式:模板方法模式
来源:互联网 发布:acs550变频器端口定义 编辑:程序博客网 时间:2024/06/06 08:31
当我们要完成在某一细节层次一致的一个过程或者一个步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可以重定义该算法的某些特定步骤
结构图:
实现代码(C#):
using System;using System.Collections.Generic;using System.Text;namespace 模板方法模式{ class Program { static void Main(string[] args) { AbstractClass c; c = new ConcreteClassA(); c.TemplateMethod(); c = new ConcreteClassB(); c.TemplateMethod(); Console.Read(); } } abstract class AbstractClass { public abstract void PrimitiveOperation1(); public abstract void PrimitiveOperation2(); public void TemplateMethod() { PrimitiveOperation1(); PrimitiveOperation2(); Console.WriteLine(""); } } class ConcreteClassA : AbstractClass { public override void PrimitiveOperation1() { Console.WriteLine("具体类A方法1实现"); } public override void PrimitiveOperation2() { Console.WriteLine("具体类A方法2实现"); } } class ConcreteClassB : AbstractClass { public override void PrimitiveOperation1() { Console.WriteLine("具体类B方法1实现"); } public override void PrimitiveOperation2() { Console.WriteLine("具体类B方法2实现"); } }}
模板方法模式是通过把不变形为搬到超类,去除子类中的重复代码来体现他的优势。
即,当不变的和可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。我们通过模板方法模式把这些行为搬移到单一的地方,这样就帮助子类摆脱重复的不变形为的纠缠。
0 0
- 设计模式:模板方法模式
- 设计模式 - 模板方法模式
- 设计模式:模板方法模式
- 设计模式 模板方法模式
- 设计模式--模板方法模式
- 设计模式-【模板方法模式】
- 设计模式: 模板方法模式
- 设计模式- 模板方法模式
- 设计模式 - 模板方法模式
- 设计模式 - 模板方法模式
- 设计模式-模板方法模式
- 设计模式-模板方法模式
- 设计模式---模板方法模式
- 设计模式-模板方法模式
- 设计模式--模板方法模式
- 设计模式-模板方法模式
- 设计模式------模板方法模式
- 设计模式----模板方法模式
- JS学习笔记
- 【转】杭电ACM试题分类
- Python中字符串切片操作
- 设计模式:简单工厂模式和工厂方法模式的区别
- 设计模式:原型模式
- 设计模式:模板方法模式
- 设计模式:观察者模式
- 设计模式:抽象工厂模式
- 设计模式:状态模式
- 设计模式:设计模式原则
- 设计模式:组合模式
- constant
- selenium+webdriver:不支持导出iframe的处理
- 获取 Android raw 目录下 视频的缩略图