设计模式之模板方法模式(c#)
2013-12-19 00:00
169 查看
模板方法模式
1 适用情况:
当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理.
2 定义:
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.
模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.
3 例子: (引用于《大话设计模式》)
1) AbstractClass是抽象类,定义实现了一个模板方法,这个模板方法一般是一个具体方法.这就是一个顶级逻辑的骨架,而逻辑的组成步骤则在相应的抽象操作中,推迟到子类实现.
2) ConcreteClass类继承抽象类AbstractClass,不同的ConcreteClass可以给出抽象方法的不同实现.
3)客户端调用如下:
1 适用情况:
当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理.
2 定义:
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.
模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.
3 例子: (引用于《大话设计模式》)
1) AbstractClass是抽象类,定义实现了一个模板方法,这个模板方法一般是一个具体方法.这就是一个顶级逻辑的骨架,而逻辑的组成步骤则在相应的抽象操作中,推迟到子类实现.
abstract class AbstractClass { public abstract void PrimitiveOperation1(); public abstract void PrimitiveOperation2(); public void TemplateMethod() { PrimitiveOperation1(); PrimitiveOperation2(); Console.WriteLine(""); } }
2) ConcreteClass类继承抽象类AbstractClass,不同的ConcreteClass可以给出抽象方法的不同实现.
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實現"); } }
3)客户端调用如下:
class Program { static void Main(string[] args) { AbstractClass c; c = new ConcreteClassA(); c.TemplateMethod(); c = new ConcreteClassB(); c.TemplateMethod(); Console.Read(); } }
相关文章推荐
- C# 设计模式系列教程-模板方法模式
- C#设计模式之十三模板方法模式(Template Method Pattern)【行为型】
- 《模式——工程化实现及扩展》(设计模式C# 版)《模板方法模式 Template》——“自我检验" 参考答案
- C#设计模式系列:模板方法模式(Template Method)
- C#设计模式——模板方法(Template Method)
- C#设计模式-窗体基类模板方法定义
- C# 设计模式-模板方法(Template Method)
- C#设计模式——模板方法模式
- C#设计模式之Template模板方法模式实现ASP.NET自定义控件 密码强度检测功能
- C#设计模式:模板方法模式(Template Method)
- C#设计模式(14)——模板方法模式(Template Method)
- C#设计模式——模板方法(Template Method)
- C#设计模式(14)——模板方法模式(Template Method)
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
- 《模式——工程化实现及扩展》(设计模式C# 版)《模板方法模式 Template》——“自我检验"
- C#设计模式之23——模板方法模式
- C#设计模式之十三模板方法模式(Template Method Pattern)【行为型】
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
- C#设计模式-模板方法模式
- C# 设计模式之 模板方法