`

javase-钩子函数(callback)-框架经常使用

 
阅读更多

 

 

* 钩子函数
  * 1 是Java三大特性之多态的典型应用
  * 2 在JavaEE框架中,或者Android中,这种方式最为常用,你重写接口/抽象类的某个方法,然后注册给框架,框架启动后就会自动调用你实现的方法,流程类似下面代码
  * 3 提供一个钩子(接口或者抽象类),调用者向钩子挂猪肉或者挂牛肉都是调用者的自由(猪肉,牛肉需要由调用者在具体实现类方法上自己写好)

 

 

代码:

 

public class PaintFrame {

	/**
	 * 钩子函数:
	 * 1 是Java三大特性之多态的典型应用
	 * 2 在JavaEE框架中,或者Android中,这种方式最为常用,你重写接口/抽象类的某个方法,然后注册给框架,框架启动后就会自动调用你实现的方法,流程类似下面代码
	 * 3 提供一个钩子(接口或者抽象类),调用者向钩子挂猪肉或者挂牛肉都是调用者的自由(猪肉,牛肉需要由调用者在具体实现类方法上自己写好)
	 */
	public static void main(String[] args) {

		MyFrame myFrame = new GameFrame();
		paint(myFrame);
		
	}
	
	public static void paint(MyFrame myFrame){
		
		System.out.println("启动线程"); // 框架启动初始化
		System.out.println("准备好画笔,支架");
		System.out.println("戴好手套,手机关机,开始聚精会神构思作品");
		// 钩子,用抽象类或者接口接收具体实现类,具体行为交给调用者来实现, 这是框架中常见的模式,其实就是用的多态
		myFrame.paint(); // 框架调用你挂来的钩子
		
		System.out.println("画画结束,大功告成"); // 框架执行结束
	}

}

abstract class MyFrame{
	
	public abstract void paint();
}

class GameFrame extends MyFrame{

	@Override
	public void paint() {
		System.out.println("draw a tiger, very strong!!");
	}
	
}

 

分享到:
评论

相关推荐

    javase-2.2-API文档-中文版.zip

    赠送jar包:javase-2.2.jar; 赠送原API文档:javase-2.2-javadoc.jar; 赠送源代码:javase-2.2-sources.jar; 赠送Maven依赖信息文件:javase-2.2.pom; 包含翻译后的API文档:javase-2.2-javadoc-API文档-中文...

    javase-3.3.3-API文档-中英对照版.zip

    赠送jar包:javase-3.3.3.jar; 赠送原API文档:javase-3.3.3-javadoc.jar; 赠送源代码:javase-3.3.3-sources.jar; 赠送Maven依赖信息文件:javase-3.3.3.pom; 包含翻译后的API文档:javase-3.3.3-javadoc-API...

    core-3.3.3 + javase-3.3.3+ zxing-1.7-core + zxing-j2se-1.7

    本文将深入探讨在给定的压缩包中涉及的几个关键组件:`core-3.3.3`, `javase-3.3.3`, `zxing-1.7-core` 和 `zxing-j2se-1.7`,以及与之相关的JDK版本,包括JDK1.7和JDK1.8。这些组件主要用于二维码生成和处理,对于...

    NetBeans-7.4-JavaSE-Windows(2/2)

    由于公司外网限制。需要的朋友可以搜索NetBeans-7.4-JavaSE-Windows。一起两个分卷。(仅Java)

    javase-3.3.3-API文档-中文版.zip

    赠送jar包:javase-3.3.3.jar; 赠送原API文档:javase-3.3.3-javadoc.jar; 赠送源代码:javase-3.3.3-sources.jar; 赠送Maven依赖信息文件:javase-3.3.3.pom; 包含翻译后的API文档:javase-3.3.3-javadoc-API...

    netbeans-6.9.1-ml-javase-windows

    netbeans-6.9.1-ml-javase-windows 第一个包,分三个包

    一维码二维码所需资源包javase-3.2.1 zxing-core-3.2.1.jar

    这两个资源包,`javase-3.2.1.jar` 和 `zxing-core-3.2.1.jar`,是开发Java应用程序时用于生成和解析一维码与二维码的关键组件。 `javase-3.2.1.jar` 是一个针对Java Standard Edition(Java SE)平台的特定版本库...

    javase-2.2-API文档-中英对照版.zip

    赠送jar包:javase-2.2.jar; 赠送原API文档:javase-2.2-javadoc.jar; 赠送源代码:javase-2.2-sources.jar; 赠送Maven依赖信息文件:javase-2.2.pom; 包含翻译后的API文档:javase-2.2-javadoc-API文档-中文...

    netbeans-7.4-javase-windows

    netbeans-7.4-javase-windows

    javase-3.3.0.zip

    在使用JavaSE 3.3.0.jar时,开发者需要注意以下几点: 1. 引入库:首先需要在项目中引入javase-3.3.0.jar作为依赖,这通常通过构建工具如Maven或Gradle来完成,或者手动将jar文件添加到项目的类路径中。 2. 导入类...

    javase-2.1.jar

    Google 二维码生成识别 xzing javase-2.1 适用于jkd1.6

    netbeans-7.3-javase-windows

    标题“netbeans-7.3-javase-windows”指的是NetBeans IDE的一个特定版本,即7.3版,专为Windows操作系统设计,用于Java SE(标准版)开发。NetBeans IDE是一款开源的集成开发环境(IDE),它支持多种编程语言,包括...

    zxing-3.1.0.jar包及javase-3.1.0包

    在你提到的"zxing-3.1.0.jar"和"zxing-javase-3.1.0.jar"这两个文件中,我们主要关注的是Java版本的ZXing库。 `zxing-3.1.0.jar` 是核心库,包含了ZXing的主要功能,如解码和编码各种条码格式。这个库可以独立使用...

    zxing-2.2.jar包及javase-2.2包.rar

    zxing2.2版本jar包,分别是core-2.2.jar和javase-2.2.jar,java生成二维码的两个jar,core为二维码生成包,javase为java文件什么的工具类包。支持jdk 1.6 亲身测试

    两个zxing的jar包,一个是core-3.3.3第二个是javase-3.3.3,亲测可用

    在Java环境中,ZXing提供了两个主要的JAR包:`core`和`javase`。 `core-3.3.3.jar`是ZXing的核心库,包含了大部分的解码和编码功能。这个包提供了基本的条码和二维码处理能力,如解析不同类型的条码数据、生成二...

    zxing-3.1.0.jar和zxing-javase-3.1.0.jar

    在给定的文件中,“zxing-3.1.0.jar”和“zxing-javase-3.1.0.jar”是ZXing库的两个不同版本,用于Java平台。下面我们将详细探讨这两个文件以及与二维码相关的知识点。 1. **ZXing库介绍** ZXing,中文名斑马线,...

    zxing-core-3.2.2 zxing-javase-3.2.1

    ZXing支持多种语言,其中包括Java,这也是我们讨论的`zxing-core-3.2.2`和`zxing-javase-3.2.1`这两个jar包的核心所在。 `zxing-core-3.2.2.jar`是ZXing的主要库,包含了处理条码和二维码解码的所有核心算法和数据...

    javase-2.0.jar

    使用java在服务端进行aes的加密解密,前端使用该js进行aes加密解密;

    JavaSE--API.md

    JavaSE--API.md

    javase-zxing-3.4.1.jar

    zxing二维码解析过程中,解决BufferedImageLuminanceSource 报错,解决 import com.google.zxing.client.j2se.BufferedImageLuminanceSource;错误的问题。zxing-master-3.4.1 版本编译而来,已经亲自测试验证。

Global site tag (gtag.js) - Google Analytics