模板方法模式
2015-05-28 21:13
211 查看
模板方法模式:父类中定义一个操作中的算法骨架,讲算法的具体实现步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 模板方法模式
{
abstract class AbstractClass
{
public abstract void Operation1();
public abstract void Operation2();
public void TemplateMethod() //给出了算法的骨架,具体实现延迟到子类
{
Operation1();
Operation2();
}
}
class ClassA : AbstractClass
{
public override void Operation1()
{
Console.WriteLine("A has completed 1");
}
public override void Operation2()
{
Console.WriteLine("A has completed 2");
}
}
class ClassB : AbstractClass
{
public override void Operation1()
{
Console.WriteLine("B has completed 1");
}
public override void Operation2()
{
Console.WriteLine("B has completed 2");
}
}
class Program
{
static void Main(string[] args)
{
AbstractClass a = new ClassA();
a.TemplateMethod();
AbstractClass b = new ClassB();
b.TemplateMethod();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 模板方法模式
{
abstract class AbstractClass
{
public abstract void Operation1();
public abstract void Operation2();
public void TemplateMethod() //给出了算法的骨架,具体实现延迟到子类
{
Operation1();
Operation2();
}
}
class ClassA : AbstractClass
{
public override void Operation1()
{
Console.WriteLine("A has completed 1");
}
public override void Operation2()
{
Console.WriteLine("A has completed 2");
}
}
class ClassB : AbstractClass
{
public override void Operation1()
{
Console.WriteLine("B has completed 1");
}
public override void Operation2()
{
Console.WriteLine("B has completed 2");
}
}
class Program
{
static void Main(string[] args)
{
AbstractClass a = new ClassA();
a.TemplateMethod();
AbstractClass b = new ClassB();
b.TemplateMethod();
}
}
}
相关文章推荐
- AndroidStudio-Parcelable自动生成代码插件安装和使用
- Java.lang.OutOfMemoryError是什么
- 局部加权线性回归及岭回归之Python实现
- Remove Element
- 题目1366:栈的压入、弹出序列
- java中的this和super关键字
- 第十二篇 无聊的一天
- 基于AdaBoost算法的人脸检测经典论文研究之三
- 进程的同步与通信
- java中的泛型笔记
- 团队冲刺-8
- [DFS]poj 2676 Sudoku 数独问题
- 把数组排成最小的数
- 互斥 同步 异步 并发 多线程的区别与联系
- Google 历年笔试面试30题
- FZU--1859&POJ--2083|(分治法)
- sql语句里的limit使用方法
- 内联函数与宏的差别
- 团队冲刺-7
- Android如何从外部跳进App