模板方法模式,C#设计模式——模板方法(Template Method)

一、概述 在软件开发中,对某一项操作往往有固定的算法结构,而具体的子步骤会因为不同的需要而有所不同。如何可以在稳定算法结构的同时来灵活应对子步骤变化的需求呢? 二、模板方法 模板方法是一种常见的设计模式,它定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板方法的结构图如下
AbstractClass是抽象类,定义了抽象的操作 ConcreteClass实现了抽象操作中与子类相关的特定步骤。 三、示例 在这里以实现一个公司的薪资系统为例介绍一下模板方法的应用。 首先定义抽象类,一般建议将抽象的操作定义为非虚public方法,将子类需要定义的特定步骤定义为抽象的protected方法。
1 public abstract class Employee 2 { 3 public void GetSalary() 4 { 5 GetBasicSalary(); 6 AddBonus(); 7 } 8 9 protected abstract void GetBasicSalary(); 10 protected abstract void AddBonus(); 11 }
接着分别实现经理和CEO的薪资
1 public class Manager : Employee 2 { 3 protected override void GetBasicSalary() 4 { 5 Console.WriteLine("Get Manager Basic Salary"); 6 } 7 8 protected override void AddBonus() 9 { 10 Console.WriteLine("Add Manager Bonus"); 11 } 12 } 13 14 public class CEO : Employee 15 { 16 protected override void GetBasicSalary() 17 { 18 Console.WriteLine("Get CEO Basic Salary"); 19 } 20 21 protected override void AddBonus() 22 { 23 Console.WriteLine("Add CEO Bonus"); 24 } 25 }
Tags:  模板模式 java模板模式 模板的计算方法 模板加固方法 模板方法模式

延伸阅读

最新评论

发表评论