C#设计模式——模板方法(Template Method)
2011-09-14 14:34
417 查看
一、概述
在软件开发中,对某一项操作往往有固定的算法结构,而具体的子步骤会因为不同的需要而有所不同。如何可以在稳定算法结构的同时来灵活应对子步骤变化的需求呢?
二、模板方法
模板方法是一种常见的设计模式,它定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
模板方法的结构图如下
AbstractClass是抽象类,定义了抽象的操作
ConcreteClass实现了抽象操作中与子类相关的特定步骤。
三、示例
在这里以实现一个公司的薪资系统为例介绍一下模板方法的应用。
首先定义抽象类,一般建议将抽象的操作定义为非虚public方法,将子类需要定义的特定步骤定义为抽象的protected方法。
接着分别实现经理和CEO的薪资
在软件开发中,对某一项操作往往有固定的算法结构,而具体的子步骤会因为不同的需要而有所不同。如何可以在稳定算法结构的同时来灵活应对子步骤变化的需求呢?
二、模板方法
模板方法是一种常见的设计模式,它定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
模板方法的结构图如下
AbstractClass是抽象类,定义了抽象的操作
ConcreteClass实现了抽象操作中与子类相关的特定步骤。
三、示例
在这里以实现一个公司的薪资系统为例介绍一下模板方法的应用。
首先定义抽象类,一般建议将抽象的操作定义为非虚public方法,将子类需要定义的特定步骤定义为抽象的protected方法。
publicabstractclass Employee { publicvoid GetSalary() { GetBasicSalary(); AddBonus(); } protectedabstractvoid GetBasicSalary(); protectedabstractvoid AddBonus(); }
接着分别实现经理和CEO的薪资
publicclass Manager : Employee { protectedoverridevoid GetBasicSalary() { Console.WriteLine("Get Manager Basic Salary"); } protectedoverridevoid AddBonus() { Console.WriteLine("Add Manager Bonus"); } } publicclass CEO : Employee { protectedoverridevoid GetBasicSalary() { Console.WriteLine("Get CEO Basic Salary"); } protectedoverridevoid AddBonus() { Console.WriteLine("Add CEO Bonus"); } }
相关文章推荐
- C#设计模式之十三模板方法模式(Template Method Pattern)【行为型】
- C#设计模式系列:模板方法模式(Template Method)
- C#设计模式——模板方法(Template Method)
- C#设计模式之十三模板方法模式(Template Method Pattern)【行为型】
- C#设计模式(14)——模板方法模式(Template Method)
- C# 设计模式-模板方法(Template Method)
- C#设计模式(14)——模板方法模式(Template Method)
- C#设计模式:模板方法模式(Template Method)
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
- 【设计模式】学习笔记11:模板方法(Template Method)
- [设计模式]模板方法模式(Template Method)---抽象类的常见应用
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 模板方法模式(Template Method) - Java实现
- Java设计模式之模板方法模式(Template Method)
- 设计模式学习总结:模板方法模式(Template Method)
- 设计模式之模板方法模式(Template Method)
- 《模式——工程化实现及扩展》(设计模式C# 版)《模板方法模式 Template》——“自我检验"
- 设计模式笔记11:模板方法设计模式(Template Method Pattern)
- 设计模式学习笔记(七)之模板方法模式(Template Method)