- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java模板方法设计模式
1. 什么是回调函数 所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数。回调函数是一个工作流的一部分,由工作流来决定函数的调用(回调)时机。一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的B姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个过程称为回调函数的注册,R称为注册函数。Web Service以及Java 的RMI都用到回调机制,可以访问远程服务器程序。回调函数包含下面几个特性: 1、属于工作流的一个部分; 2、必须按照工作流指定的调用约定来申明(定义); 3、他的调用时机由工作流决定,回调函数的实现者不能直接调用回调函数来实现工作流的功能; 2. 回调机制 回调机制是一种常见的设计模型,他把工作流内的某个功能,按照约定的接口暴露给外部使用者,为外部使用者提供数据,或要求外部使用者提供数据。
java回调机制:
软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。
同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;
回 调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;
异步调用:一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。
回调和异步调用的关系非常紧密:使用回调来实现异步消息的注册,通过异步调用来实现消息的通知。
的代码:
1.两个类:匿名类和
2.匿名类实现接口 在测试的main方法中用匿名类的形式实现 3.拥有一个参数为接口类型的函数 4.匿名类运行时调用中setCallBack函数,以自身传入参数 5.已取得匿名类,就可以随时回调匿名类中所实现的接口中的方法
回调方法的使用通常发生在“java接口”和“抽象类”的使用过程中。
模板方法设计模式适用性:
一次性实现一个算法的不变部分,并将可变的算法留给子类来实现。
各子类中公共的行为应该被提取出来并集中一个公共父类中以避免代码重复。
可以控制子类扩展。
设计实例:
AbstractClass 定义抽象的原语操作,具体的子类将重定义它们以实现一个算法的各步骤。 实现一个模板方法,定义一个算法骨架。 该模板方法不仅调用原语操作,也调用定义在AbstractClass或其他对象中的操作。
/**
* 抽象模板方法类
*
*/
public abstract class CallBackAbstract //需要到子类中实现的方法
public abstract void print ;
//模板方法
public void update System.out.println 模板中的方法 ;
for int i 0; i 3; i++ print ; ConcreteClass 实现原语操作以完成算法中与特定子类相关的步骤。
/**
* 具体子类实现继承模板方法类
*
*/
public class CallBackConcrete extends CallBackAbstract @Override
public void print System.out.println 子类中具体实现的方法被调用 ; 测试类
public class CallTemplateMainTest public static void main String[] args CallBackConcrete cbc new CallBackConcrete ;
//调用子类中实现的具体方法
cbc.print ;
//调用模板方法中的实现方法
cbc.update ; 输出结果:
子类中具体实现的方法被调用
模板中的方法
子类中具体实现的方法被调用
子类中具体实现的方法被调用
子类中具体实现的方法被调用
您可能关注的文档
最近下载
- 运动心理学PPT完整全套教学课件.pptx VIP
- 标准图集-22G101-2现浇混凝土板式楼梯.pdf VIP
- 2025年广东省中考语文“阅读”部分试题点评.docx
- 离子交换树脂常见困扰及解决方案.docx VIP
- 小学五年级英语精通版第一单元一二课.ppt VIP
- 2025年AI in Recruiting-解锁智能招聘实践指南.docx VIP
- 汽车机械基础 滑动轴承 滑动轴承.pptx VIP
- 浙教版九年级数学上册《第一章二次函数》单元测试卷-附带答案 .pdf VIP
- YD-T 5131-2005 移动通信工程钢塔桅结构设计规范.docx VIP
- (高清版)DB32∕T 4942-2024 公共机构绿色办公区管理规范.pdf VIP
文档评论(0)