Java中事件委托机制的简单Demo

public class Test04_DelegatedEvent {
	//Java中的事件委托机制
	//监听器就是使用了事件委托机制的设计模式实现的,例如swing中的监听器
	//事件委托机制比观察者模式耦合度更低
	//观察者模式代码:略(需要一个被观察者接口)
	//事件委托机制(不需要被观察者接口)
	@Test
	public void test() {
		//定义两个委托者
		class Dog{
			@SuppressWarnings("unused")
			void speak() {
				System.out.println("狗叫");
			}
		}
		class Cat{
			@SuppressWarnings("unused")
			void show(Integer x) {
				for(int i=0;i[] methodType;//方法参数类型
	public Event(Object obj, String methodName, Object...methodParameters) {
		super();
		this.obj = obj;
		this.methodName = methodName;
		this.methodParameter = methodParameters;
		int len = methodParameters.length;
		this.methodType = new Class[len];
		for(int i=0;i list = new ArrayList();
	//添加需要委托的事情
	public void addEvent(Object obj, String methodName, Object...methodParameters) {
		list.add(new Event(obj, methodName, methodParameters));
	}
	//循环执行这些事情
	public void notifyX() {
		for (Event event : list) {
			event.invoke();
		}
	}
}

你可能感兴趣的:(Java学习笔记)