无废话C#设计模式之十四:Template Method
2009-04-02 08:23:19 来源:WEB开发网核心提示: 代码执行结果如下图:代码说明l PayGateway类型是抽象模版角色,它定义了支付过程不变的部分,无废话C#设计模式之十四:Template Method(2),并且把变化部分定义为抽象操作,让子类去实现,可以是抽象方法也可以是带有默认实现的方法,注意事项l 模版方法可以说是最不像设计模
代码执行结果如下图:
代码说明
l PayGateway类型是抽象模版角色。它定义了支付过程不变的部分,并且把变化部分定义为抽象操作,让子类去实现。其中的SubmitOrder方法是模版方法。
l IPSGateway类型是具体模版角色。它代表了某一种支付网关,并且按照这种支付网关的接口标准来实现生成提交表单和记录日志的操作。
何时采用
l 如果某些类型的操作拥有共同的实现骨架和不同的实现细节的话,可以考虑使用模版方法来封装统一的部分。
实现要点
l 复用算法的骨架,将可变的实现细节留给子类实现。
l 留给子类实现的方法需要在父类中定义,可以是抽象方法也可以是带有默认实现的方法。
注意事项
l 模版方法可以说是最不像设计模式的设计模式,通常很多设计模式会和模版方法一起使用。
系列文章:
无废话C#设计模式之一:开篇
无废话C#设计模式之二:Singleton
无废话C#设计模式之三:Abstract Factory
无废话C#设计模式之四:Factory Method
更多精彩
赞助商链接