【软考】设计模式-模板方法
2017-04-22 22:19
323 查看
模板方法的主要思想就是把所有相同的功能都写在父类里,需要有变化的方法在父类中写成虚方法,在子类中重写虚方法。所以模板方法提供了一个很好的代码复用平台。
//abstractclass是抽象类,其实也就是一抽象模板,定义并实现了一个模板方法,这个模板方法是一个具体方法,
//他给出了一个顶级逻辑的骨架,而路基的组成步骤在相应的抽象操作中,推迟到子类实现,顶级逻辑也有可能调用一些具体方法。
abstract class AbstractClass
{
public abstract void PrimitiveOperation1(); //一些抽象行为,放到子类去实现。
public abstract void PrimitiveOperation2();
public void TemplateMethod() //模板方法,给出了逻辑的骨架,而逻辑的组成是一些相应的抽象操作。
{
PrimitiveOperation1();
PrimitiveOperation2();
Console.WriteLine("");
}
}
主方法调用:
static void Main(string[] args)
{
AbstractClass c;
c = new ConcreteClassA();
c.TemplateMethod();
c = new ConcreteClassB();
c.TemplateMethod();
Console.Read();
}
![](https://img-blog.csdn.net/20170422221825058?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemp5MTUyMDMxNjc5ODc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
//abstractclass是抽象类,其实也就是一抽象模板,定义并实现了一个模板方法,这个模板方法是一个具体方法,
//他给出了一个顶级逻辑的骨架,而路基的组成步骤在相应的抽象操作中,推迟到子类实现,顶级逻辑也有可能调用一些具体方法。
abstract class AbstractClass
{
public abstract void PrimitiveOperation1(); //一些抽象行为,放到子类去实现。
public abstract void PrimitiveOperation2();
public void TemplateMethod() //模板方法,给出了逻辑的骨架,而逻辑的组成是一些相应的抽象操作。
{
PrimitiveOperation1();
PrimitiveOperation2();
Console.WriteLine("");
}
}
//oncreteclass,实现父类所定义的一个或多个抽象方法,每一个abstractclass都可以有任意多个concreteclass与之对应,而每一个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实现"); } }
主方法调用:
static void Main(string[] args)
{
AbstractClass c;
c = new ConcreteClassA();
c.TemplateMethod();
c = new ConcreteClassB();
c.TemplateMethod();
Console.Read();
}
相关文章推荐
- 设计模式与软考试题之模板方法模式
- 【软考学习】设计模式——模板方法模式
- 模板方法设计模式
- 设计模式之七、模板方法模式TemplateMethod
- C++设计模式编程中Template Method模板方法模式的运用
- C#设计模式:模板方法模式(Template Method)
- C# 设计模式之 模板方法
- 设计模式二十三:template method(模板方法)——类行为模式
- 设计模式:模板方法模式(8)C++版
- 设计模式——模板方法模式
- java设计模式(八)--模板方法模式
- 设计模式笔记(14)---模板方法模式(行为型)
- 设计模式之八:模板方法模式(冲咖啡、泡茶)
- Android设计模式系列--模板方法模式
- C# 设计模式系列教程-模板方法模式
- 设计模式之——模板方法
- 设计模式从零开始——模板方法模式
- 设计模式之模板方法模式
- 设计模式之模板方法模式(封装算法)
- java设计模式7.策略模式、模板方法模式、观察者模式