【监听者模式】

监听器模式

最简单的例子。

举例子:小明坐汽车去高铁站这个行为,其中汽车是事件对象,它有站点等信息。监听者(小明看到到了高铁站,就下车,回调动作),事件源(一切的源头,包含汽车,通知下车等动作)。

如果用代码实现的话:那么就是三个类,一个事件源,一个事件本身,一个监听者。

首先事件本身,就是汽车,汽车有一个属性,name。也就是站名。

public class Bus {
	//站点
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

监听器:就是满足了条件后执行的动作,比如,到站了(那肯定是要走下车的逻辑了)

/**
 * \* @author: bear
 * \* Date: 2022-04-22-17:39
 * \* describe: 监听器本身。用来监听事件源头的,看看是否到站,如果到站了,就下车
 */
public class Listen {

	// 事件监听器,执行之后的动作
	public void getOffCar(Bus bus){
		if (bus.getName().equals("高铁站")) {
			System.out.println("高铁站到了,请乘客下车");
		}
	}
}

事件源头:源头肯定又事件本身,有监听器。比如汽车到站了,肯定要通知乘客下车,这个下车的动作是监听器做的。

public class Source {

	public void notice(Listen listen,Bus bus){
		listen.getOffCar(bus);
	}
}

测试方法:

	public static void main(String[] args) {
		Listen listen = new Listen();

		Bus bus = new Bus();
		bus.setName("高铁站");//类比已经到了高铁站,车已经到了,那么就要通知乘客下车了
		Source source = new Source();
		source.notice(listen,bus);
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值