事件监听

java设计模式-回调、事件监听器、观察者模式

空扰寡人 提交于 2020-02-28 13:57:58
背景 关于设计模式,之前笔者写过工厂模式,最近在使用gava ListenableFuture时发现事件监听模型特别有意思,于是就把事件监听、观察者之间比较了一番,发现这是一个非常重要的设计模式,在很多框架里扮演关键的作用。 回调函数 为什么首先会讲回调函数呢?因为这个是理解监听器、观察者模式的关键。 什么是回调函数 所谓的回调,用于回调的函数。 回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数。 有这么一句通俗的定义: 就是程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。 举个例子: 这里有两个实体:回调抽象接口、回调者(即程序a) 回调接口(ICallBack ) public interface ICallBack { public void callBack(); } 回调者(用于调用回调函数的类) public class Caller { public void call(ICallBack callBack){ System.out.println("start..."); callBack.callBack(); System.out.println("end..."); } } 回调测试: public static void