Net设计模式实例之模板方法模式(Template Mothed Pattern)
上一篇 /
下一篇 2010-05-08 19:03:11
/ 个人分类:设计模式
模板方法模式(Template Method Pattern),定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可以重定义算法的某些特定步骤。模板方法模式把不变行为搬移到超类,从而去除子类中的重复代码,实际上模板方法模式就是提供了一个代码复用平台。51Testing软件测试网n7R;t#tWk g
要完成在某一细节上层次一致的一个过程或一系列步骤,但个别步骤在更详细的层次上实现不同时,可以使用模版方法模式解决问题。
1R3y8i+M!n?5vz01、模板方法模式结构
51Testing软件测试网i2Qe2K5\X]E
抽象类AbstractClass,实现了一个模版方法,定义了一个算法框架,具体子类将重新定义PrimitiveOperation1和PrimitiveOperation1以实现一个算法的步骤。51Testing软件测试网0E!u[ q |
子类ConcreteClassA和ConcreteClassB,实现PrimitiveOperation1和PrimitiveOperation1以完成算法中与特定子类相关的步骤。51Testing软件测试网
AeA Y}}L
2、模板方法模式代码
1、抽象模板类AbstractClass及其模板方法TemplateMethod()51Testing软件测试网cS%jw*?y.YJE |
public abstract class AbstractClass51Testing软件测试网;Q
Sw]"|Bh2W5BO { o]QvHph0 public abstract void PrimitiveOperation1(); MR Ni*a3[/Od0 public abstract void PrimitiveOperation2();51Testing软件测试网o&k+?zr0B2vk
X3l)n:o{/mF0 public void TemplateMethod() 'TV2Cu+|G.j;^'w E0 { &MSwltf.C6BR0 PrimitiveOperation1();51Testing软件测试网$KWHy2?s/T V PrimitiveOperation2(); d|
l8B/B*r9d#Zp)C0 Console.WriteLine("模板方法执行完"); R-fw_ K:u']@-xM0 } 5?U `8r}e0} -SL p/~(O5k0 |
u-sB~9y {G8E02、子类ConcreteClassA、ConcreteClassB实现父类定义的抽象方法 I;WC!UV*S0 |
public class ConcreteClassA:AbstractClass |