23种设计模式之模板方法模式
23种设计模式之模板方法模式
模式结构
- 抽象模板
- 具体实现
案例
/*** 模板方法*/
public abstract class StudyAbroad {public void TemplateMethod() //模板方法{LookingForSchool(); //索取学校资料ApplyForEnrol(); //入学申请ApplyForPassport(); //办理因私出国护照、出境卡和公证ApplyForVisa(); //申请签证ReadyGoAbroad(); //体检、订机票、准备行装Arriving(); //抵达}public void ApplyForPassport() {System.out.println("三.办理因私出国护照、出境卡和公证:");System.out.println(" 1)持录取通知书、本人户口簿或身份证向户口所在地公安机关申请办理因私出国护照和出境卡。");System.out.println(" 2)办理出生公证书,学历、学位和成绩公证,经历证书,亲属关系公证,经济担保公证。");}public void ApplyForVisa() {System.out.println("四.申请签证:");System.out.println(" 1)准备申请国外境签证所需的各种资料,包括个人学历、成绩单、工作经历的证明;个人及家庭收入、资金和财产证明;家庭成员的关系证明等;");System.out.println(" 2)向拟留学国家驻华使(领)馆申请入境签证。申请时需按要求填写有关表格,递交必需的证明材料,缴纳签证。有的国家(比如美国、英国、加拿大等)在申请签证时会要求申请人前往使(领)馆进行面试。");}public void ReadyGoAbroad() {System.out.println("五.体检、订机票、准备行装:");System.out.println(" 1)进行身体检查、免疫检查和接种传染病疫苗;");System.out.println(" 2)确定机票时间、航班和转机地点。");}public abstract void LookingForSchool();//索取学校资料public abstract void ApplyForEnrol(); //入学申请public abstract void Arriving(); //抵达
}
/*** 具体实现*/
public class StudyInAmerica extends StudyAbroad{@Overridepublic void LookingForSchool(){System.out.println("一.索取学校以下资料:");System.out.println(" 1)对留学意向国家的政治、经济、文化背景和教育体制、学术水平进行较为全面的了解;");System.out.println(" 2)全面了解和掌握国外学校的情况,包括历史、学费、学制、专业、师资配备、教学设施、学术地位、学生人数等;");System.out.println(" 3)了解该学校的住宿、交通、医疗保险情况如何;");System.out.println(" 4)该学校在中国是否有授权代理招生的留学中介公司?");System.out.println(" 5)掌握留学签证情况;");System.out.println(" 6)该国政府是否允许留学生合法打工?");System.out.println(" 8)毕业之后可否移民?");System.out.println(" 9)文凭是否受到我国认可?");}@Overridepublic void ApplyForEnrol(){System.out.println("二.入学申请:");System.out.println(" 1)填写报名表;");System.out.println(" 2)将报名表、个人学历证明、最近的学习成绩单、推荐信、个人简历、托福或雅思语言考试成绩单等资料寄往所申请的学校;");System.out.println(" 3)为了给签证办理留有充裕的时间,建议越早申请越好,一般提前1年就比较从容。");}@Overridepublic void Arriving(){System.out.println("六.抵达目标学校:");System.out.println(" 1)安排住宿;");System.out.println(" 2)了解校园及周边环境。");}
}
/*** 测试*/
public class TemplateMethodTest {public static void main(String[] args) {StudyAbroad studyAbroad = new StudyInAmerica();studyAbroad.TemplateMethod();}
}
23种设计模式之模板方法模式相关推荐
- 【Unity3D与23种设计模式】模板方法模式(Template Method)
GoF中定义: "在一个操作方法中定义算法的流程,其中某些步骤由子类完成. 模板方法模式让子类在不变更原有算法流程的情况下,还能够重新定义其中的步骤" 每一次武器攻击目标时,都要按 ...
- 在王者荣耀角度下分析面向对象程序设计B中23种设计模式之模板方法模式
· 模板方法模式在王者荣耀中的应用 · 一.简述 在王者荣耀中,有查看所有英雄功能,并且玩家在查看英雄时可以对英雄的排序做调整.具体而言,玩家可以按照默认排序.名称排序.熟练度排序.上架时间排序.荣耀 ...
- 【设计模式】23种设计模式之模板方法模式
模板方法模式 定义 在一个抽象基类的方法中定义一个算法的骨架,算法的每一个步骤都可以延迟到子类,由子类重写.模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤. UML类图 使用场 ...
- 23种设计模式之模板方法
23种设计模式总篇:chenmingyu.top/design/ 模板方法 模板方法属于行为型模式 定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中.使得子类可以不改变一个算法的结构即可重定 ...
- 23种设计模式——装饰者模式
文章目录 23种设计模式--装饰者模式 1.装饰者模式概述 2.装饰者模式的结构 3.装饰者模式的实现 4.装饰者模式的应用场景 23种设计模式--装饰者模式 1.装饰者模式概述 背景 有些人为了早上 ...
- 实践GoF的23种设计模式:建造者模式
本文分享自华为云社区<[Go实现]实践GoF的23种设计模式:建造者模式>,作者: 元闰子. 简述 在程序设计中,我们会经常遇到一些复杂的对象,其中有很多成员属性,甚至嵌套着多个复杂的对象 ...
- 【Go实现】实践GoF的23种设计模式:命令模式
上一篇:[Go实现]实践GoF的23种设计模式:代理模式 简单的分布式应用系统(示例代码工程):https://github.com/ruanrunxue/Practice-Design-Patter ...
- 23种设计模式7_代理模式之一静态代理
23种设计模式7_代理模式之一静态代理 1 基本介绍 代理模式:为其他对象提供一种代理以控制对这个对象的访问 代理模式也叫委托模式,它是一项基本设计技巧.许多其他的模式,如状态模式.策略模式.访问者模 ...
- 23种设计模式之命令模式和策略模式的区别
文章目录 概述 命令模式 策略模式 相同点 总结 概述 命令模式和策略模式确实很相似,只是命令模式多了一个接收者(Receiver)角色.它们虽然同为行为类模式,但是两者的区别还是很明显的.策略模式的 ...
- 23种设计模式之代理模式
文章目录 代理模式的定义与特点 代理模式的结构与实现 模式的结构 模式的实现 代理模式的应用场景 代理模式的应用实例 代理模式的扩展 代理模式分类 静态代理 动态代理 在有些情况下,一个客户不能或者不 ...
最新文章
- 在Ubuntu 14.04 64bit上安装Markdown和绘图软件Haroopad
- 《Python Cookbook》 最佳译本开放下载啦!
- led透明屏生产厂家_LED透明屏与LED玻璃屏有何区别
- java回调机制及其实现(转)
- 关于精密空调,你需要了解的都在这里!
- JSP程序开发学习笔记2
- 测试-关于Unity获取子层级内容的几种接口(Transform FindChild, Component GetComponentInChildren,...)...
- svn服务器搭建和使用_使用Gitea搭建自己的Git服务器
- Phase2 Day3 List
- 【引用】我国一、二级学科目录
- 识别PDF文字的软件,得力OCR文字识别
- 关于STM32单片机延时微妙(delay_us)函数-hal库
- 玛丽·娜拉(Marie Neurath)遗失的遗产
- java rhino 运行 js_深入浅出Rhino:Java与JS互操作
- Unity 给模型换材质
- 学大伟业 Day 1 培训总结
- 阅读书籍:Monte Carlo Methods(第一章 Introduction to Monte CarloMethods)
- java基础之后台线程_繁星漫天_新浪博客
- 如何使用ArcGIS绘制经纬网
- 解决运行gazebo时出现“[gazebo-2] process has died [pid 7920, exit code 255.....“的问题
热门文章
- 室内定位发展趋势分析
- 屏幕录制软件哪个好 如何录制电脑在线视频
- 桌面高效便捷的多窗口调整管理工具 - AquaSnap
- Opencv之Meanshift和Camshift
- 已知平面上两点坐标及半径,求过两点圆弧的圆心坐标
- MacOS Ventura 13.0 Beta8 (22A5352e) 带 OC 0.8.4 三分区原版黑苹果镜像
- 某微型计算机字长为8位,单片机课后习题答案 - 图文
- 听哥一句劝,CSDN史上最强插件你把握不住(文末可抽取机械键盘,CSDN年卡会员)
- 数据结构C语言版第二版(名师严蔚敏最新力作)人民邮电出版社
- 如何破解WP7并安装xap文件