【软考】设计模式-模板方法
来源:互联网 发布:zip解压软件下载mac版 编辑:程序博客网 时间:2024/06/15 05:36
模板方法的主要思想就是把所有相同的功能都写在父类里,需要有变化的方法在父类中写成虚方法,在子类中重写虚方法。所以模板方法提供了一个很好的代码复用平台。
//abstractclass是抽象类,其实也就是一抽象模板,定义并实现了一个模板方法,这个模板方法是一个具体方法, //他给出了一个顶级逻辑的骨架,而路基的组成步骤在相应的抽象操作中,推迟到子类实现,顶级逻辑也有可能调用一些具体方法。 abstract class AbstractClass { public abstract void PrimitiveOperation1(); //一些抽象行为,放到子类去实现。 public abstract void PrimitiveOperation2(); public void TemplateMethod() //模板方法,给出了逻辑的骨架,而逻辑的组成是一些相应的抽象操作。 { PrimitiveOperation1(); PrimitiveOperation2(); Console.WriteLine(""); } }
//oncreteclass,实现父类所定义的一个或多个抽象方法,每一个abstractclass都可以有任意多个concreteclass与之对应,而每一个concreteclass都可以给出这些抽象方法, //也即是顶级逻辑的组成步骤)的不同实现,从而使得顶级逻辑的实现各不相同。 class ConcreteClassA:AbstractClass { public override void PrimitiveOperation1() { Console.WriteLine("具体类A方法1实现"); } public override void PrimitiveOperation2() { Console.WriteLine("具体类A方法2实现"); } } class ConcreteClassB:AbstractClass { public override void PrimitiveOperation1() { Console.WriteLine("具体类B方法1实现"); } public override void PrimitiveOperation2() { Console.WriteLine("具体了B方法2实现"); } }
主方法调用:
static void Main(string[] args) { AbstractClass c; c = new ConcreteClassA(); c.TemplateMethod(); c = new ConcreteClassB(); c.TemplateMethod(); Console.Read(); }
3 1
- 【软考】设计模式-模板方法
- 软考--设计模式
- 【软考学习】设计模式——工厂方法
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 【设计模式】模板方法
- 模板方法设计模式
- 设计模式--模板方法
- 模板方法设计模式
- 设计模式-模板方法
- 设计模式-模板方法
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- 模板方法设计模式
- HTTP之缓存
- 保存退出vim编辑
- 数组的基本操作
- 详解TCP状态转移图
- 类型萃取
- 【软考】设计模式-模板方法
- swift 开发服务器学习
- HDU 1171 Big Event in HDU (多重背包+单调队列优化)
- vector实现最大流EK算法
- leetcode 36(后续继续更新)
- Ubuntu16.04字符界面ifconfig命令无网络接口ens33的解决方法
- C++中如何定义动态数组
- 刘汝佳《算法竞赛入门经典(第二版)》习题(二)
- MySQL