标签:
当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理。
模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
模板方法模式就是提供了一个很好地代码复用平台。通过模板方法模式把这些行为搬移到单一的地方,这样就帮助子类摆脱重复的不变行为的纠缠。
代码例子:
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();
标签:
原文地址:http://www.cnblogs.com/laixiancai/p/4792237.html