设计模式模板方法模式

上传人:宝路 文档编号:48357659 上传时间:2018-07-14 格式:PPTX 页数:29 大小:1.53MB
返回 下载 相关 举报
设计模式模板方法模式_第1页
第1页 / 共29页
设计模式模板方法模式_第2页
第2页 / 共29页
设计模式模板方法模式_第3页
第3页 / 共29页
设计模式模板方法模式_第4页
第4页 / 共29页
设计模式模板方法模式_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《设计模式模板方法模式》由会员分享,可在线阅读,更多相关《设计模式模板方法模式(29页珍藏版)》请在金锄头文库上搜索。

1、LOGO设计模式(Design Pattern)张凯 副教授 计算机学院 软件工程系武汉科技大学 问题(Problem)v题目抄错,会做也白搭武汉科技大学 问题(Problem)class TestPaperA/试题 1public void TestQuestion1()Console.WriteLine(“ 杨过 得到,后来给了郭靖,炼成倚天剑、屠龙刀的玄铁可能是 a.球磨铸铁 b.马口铁 c.高速合金钢 d.碳素纤维 “);Console.WriteLine(“答案:b“);/试题 2public void TestQuestion2()Console.WriteLine(“ 杨过

2、、程英、陆无双铲除了情花,造成 a.使这种植物不再害人b.使一种珍稀物种灭绝 c.破坏了那个生物圈的生态平衡 d.造成该地区沙漠化 “);Console.WriteLine(“答案:a“);/试题 3public void TestQuestion3()Console.WriteLine(“ 蓝凤 凰的致使华山师徒、桃谷六仙呕吐不止,如果你是大夫,会给他们开什么药 a.阿司匹林 b.牛黄解毒片 c.氟哌酸 d.让他们喝大量的生牛奶 e.以上全不对 “);Console.WriteLine(“答案:c“);学生甲的试卷武汉科技大学 问题(Problem)class TestPaperB/试题

3、1public void TestQuestion1()Console.WriteLine(“ 杨过 得到,后来给了郭靖,炼成倚天剑、屠龙刀的玄铁可能是 a.球磨铸铁 b.马口铁 c.高速合金钢 d.碳素纤维 “);Console.WriteLine(“答案:d“);/试题 2public void TestQuestion2()Console.WriteLine(“ 杨过 、程英、陆无双铲除了情花,造成 a.使这种植物不再害人b.使一种珍稀物种灭绝 c.破坏了那个生物圈的生态平衡 d.造成该地区沙漠化 “);Console.WriteLine(“答案:b“);/试题 3public void

4、 TestQuestion3()Console.WriteLine(“ 蓝凤 凰的致使华山师徒、桃谷六仙呕吐不止,如果你是大夫,会给他们开什么药 a.阿司匹林 b.牛黄解毒片 c.氟哌酸 d.让他们喝大量的生牛奶 e.以上全不对 “);Console.WriteLine(“答案:a“);学生乙的试卷武汉科技大学 问题(Problem)static void Main(string args)Console.WriteLine(“学生甲的试卷:“);TestPaperA studentA = new TestPaperA();studentA.TestQuestion1();studentA.

5、TestQuestion2();studentA.TestQuestion3();Console.WriteLine(“学生乙的试卷:“);TestPaperB studentB = new TestPaperB();studentB.TestQuestion1();studentB.TestQuestion2();studentB.TestQuestion3();Console.Read();学生甲和学生乙的试试卷类类非常类类似 ,除了答案不同,没什么区别别,如果 老师师修改题题目,2个类类都需要修改。武汉科技大学 问题(Problem)class TestPaper/试题 1public

6、 void TestQuestion1()Console.WriteLine(“ 杨过 得到,后来给了郭靖,炼成倚天剑、屠龙刀的玄铁可能是 a.球磨铸铁 b.马口铁 c.高速合金钢 d.碳素纤维 “);Console.WriteLine(“答案:b“);/试题 2public void TestQuestion2()Console.WriteLine(“ 杨过 、程英、陆无双铲除了情花,造成 a.使这种植物不再害人b.使一种珍稀物种灭绝 c.破坏了那个生物圈的生态平衡 d.造成该地区沙漠化 “);Console.WriteLine(“答案:a“);/试题 3public void TestQu

7、estion3()Console.WriteLine(“ 蓝凤 凰的致使华山师徒、桃谷六仙呕吐不止,如果你是大夫,会给他们开什么药 a.阿司匹林 b.牛黄解毒片 c.氟哌酸 d.让他们喝大量的生牛奶 e.以上全不对 “);Console.WriteLine(“答案:c“);试卷父类武汉科技大学 问题(Problem) 学生甲的试卷class TestPaperA : TestPaperpublic new void TestQuestion1()base.TestQuestion1();Console.WriteLine(“答案:c“);public new void TestQuestio

8、n2()base.TestQuestion2();Console.WriteLine(“答案:b“);public new void TestQuestion3()base.TestQuestion3();Console.WriteLine(“答案:a“);class TestPaperB : TestPaperpublic new void TestQuestion1()base.TestQuestion1();Console.WriteLine(“答案:d“);public new void TestQuestion2()base.TestQuestion2();Console.Write

9、Line(“答案:c“);public new void TestQuestion3()base.TestQuestion3();Console.WriteLine(“答案:a“);学生乙的试卷武汉科技大学 问题(Problem)class TestPaperpublic void TestQuestion1()Console.WriteLine(“ 杨过得到,后来给了郭靖,炼成倚天剑、屠 龙 刀的玄铁可能是 a.球磨铸铁 b.马口铁 c.高速合金钢 d.碳素纤维 “);Console.WriteLine(“答案:“ + Answer1();protected virtual string

10、Answer1()return “;武汉科技大学 问题(Problem)/学生甲抄的试卷class TestPaperA : TestPaperprotected override string Answer1()return “b“;protected override string Answer2()return “c“;protected override string Answer3()return “a“;/学生乙抄的试卷class TestPaperB : TestPaperprotected override string Answer1()return “c“;protect

11、ed override string Answer2()return “a“;protected override string Answer3()return “a“;武汉科技大学 问题(Problem)武汉科技大学 问题(Problem)static void Main(string args)Console.WriteLine(“学生甲抄的试卷:“);TestPaper studentA = new TestPaperA();studentA.TestQuestion1();studentA.TestQuestion2();studentA.TestQuestion3();Conso

12、le.WriteLine(“学生乙抄的试卷:“);TestPaper studentB = new TestPaperB();studentB.TestQuestion1();studentB.TestQuestion2();studentB.TestQuestion3();Console.Read();武汉科技大学 主要内容模式动机与定义1模式结构与分析2模式实例与解析3模式效果与应用4武汉科技大学 模板方法模式(Template Method)v模式动机 模式名称:模板方法模式(Template Method) 准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一

13、些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模版方法模式的用意。武汉科技大学 模板方法模式(Template Method)v模式动机 很多人可能没有想到,模版方法模式实际上是所有模式中最为常见的几个模式之一,而且很多人可能使用过模版方法模式而没有意识到自己已经使用了这个模式。模版方法模式是基于继承的代码复用的基本技术,模版方法模式的结构和用法也是面向对象设计的核心。 武汉科技大学 模板方法模式(Template Method)v模式动机 模版方法模式需要开发抽象类和具体子类的设计师之间的协作。一个设计师负 责给出一个

14、算法的轮廓和骨架,另一些设计师则负责给出这个算法的各个逻辑步骤。代表这些具体逻辑步骤的方法称做基本方法(primitive method);而将这些基本法方法总汇起来的方法叫做模版方法(template method),这个设计模式的名字就是从此而来。武汉科技大学 模板方法模式(Template Method)v模式定义 模板方法(Template Method):定义一个操作中算法的骨架,而将一些 步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法是一种类行为型模式。武汉科技大学 模板方法模式(Template Method)v模式结构 武

15、汉科技大学 模板方法模式(Template Method)v参与者 AbstractClass:抽象类 ConcreteClass:具体子类 武汉科技大学 模板方法模式(Template Method)v例子 极品飞车中有很多的汽车,但是从操作角度看大同小异。无非是起步(StartUp )、行驶(Run)、停车(Stop)等行为。 结合Template Method模式讲就是在这个程序中,结构(对汽车的操作)是稳定 的,但是变化在于各个子步骤(操作行为的具体实现)。武汉科技大学 模板方法模式(Template Method)public abstract class AbstractCarprotected abstract string StartUp();protected abstract string Ru

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号