android设计模式之observer

       今天我们谈谈android中的observer模式,看了一下网上的代码,感觉不是很好理解,我还是引入高焕堂老师的EIT模式来说,同时我结合android中的为button设置监听来讨论这个问题,我先大概讲讲理论,然后在下面会以一个简单的代码来表现。

      高老师的EIT模型中E和I是对应不变的,就像我们的button按钮是不变的,而变得只是button按钮以后处理事件,T也就是我们说的监听事件,在高老师来看是需要变得。同时监听事件是需要实现I接口的,这是我们连接变和不变的桥梁。高老师的E代表的是引擎,T代表的是轮胎,也就是引擎一旦上上去就不怎么会改变,但是轮胎会经常改变,I代表的是引擎和轮胎之间的接口,当我们把轮胎和接口连接在一起以后,我们就 可以愉快的玩耍了。ok,理论就讲到这个地方,下面是我模拟的一个button的监听实现的代码,

public class Test {

	/**
	 * 
	 * @author jk
	 */
	public static void main(String[] args) {
		// 初始化一个button
		Button btn = new Button();
		// 设置一个监听的事件
		btn.setOnClickListener(new MyListener());
		// 通过btn.callonclick调用传入的MyListener对象的onclick方法
		btn.callonclick();

	}

}

// 定义一个接口
interface IMyInterface {
	void onclick();

}

// 实现IMyInterface接口
class MyListener implements IMyInterface {
	// 实现mListerer方法
	public void onclick() {
		System.out.println("ni hao ");

	}
}

class Button {
	// 设置接口对象
	IMyInterface myInterface;

	public void callonclick() {
		// 调用子类对象的方法
		myInterface.onclick();
	}

	public void setOnClickListener(IMyInterface myInterface) {
		// 父类引用指向子类对象,这里传递的一般是一个子类对象
		this.myInterface = myInterface;
	}
}

有人说,这不就是回调吗?虽然我知道这个和大多数人说的回调几乎是一样的,但是,我真的不能理解回调。。。伤感



你可能感兴趣的:(Android设计模式)