设计模式之监听者模式

package listenermode;

public class Button {
	//在类中定义接口对象 ,都是button的行为
	public interface OnClickListener {

		public void onClickListener ();
	}

	private OnClickListener listener =null;

	public void setOnClickListener(OnClickListener cbl){
		this.listener = cbl;
	}
	//相当于是onClick的触发
	public void clickButton (){
		System.out.println("button被按下 ");
		if (listener !=null){
			//在关心的方法中,调用接口对象中定义的方法
			listener.onClickListener();
		}
	}
}

  测试类如下

package maintest;

import listenermode.Button;
import listenermode.Button.OnClickListener;

public class Maintest {
	public static void main(String [] args ){
		Button button= new Button();

		button.setOnClickListener(new OnClickListener() {

			public void onClickListener() {
				System.out.println("按下后执行的操作,如页面的跳转等");
			}
		});
		button.clickButton();
	}
}

 (参考 http://www.cnblogs.com/cbf4life/tag/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/) 

时间: 2024-10-16 22:47:26

设计模式之监听者模式的相关文章

设计模式(二)观察者监听者模式

基于MAP线程安全的观察者监听者模式 1 #include<map> 2 #include<string> 3 #include<vector> 4 #include<iostream> 5 #include<memory> 6 using namespace std; 7 8 class Listener 9 { 10 public: 11 Listener(string name):_name(name){} 12 virtual void

监听者模式

监听者模式是观察者模式实现的一种,也属于Publish/Subscribe模式,被监听者触发某一事件后向监听者发送通知.在java中最常用的就是在编写GUI程序时,控件的事件监听了. 通常在编写java的GUI程序时,需要在控件上注册一个监听器,这个监听器需要开发人员自己编写,当控件被监听的事件触发后,监听器也会做出响应的反应. Frame frame = new Frame("java"); frame.setBounds(400, 300, 300, 200); frame.set

设计模式之监听模式(观察者模式与监听模式区别)

一,类的四大基本关系:  a.关联关系:如A类调用B类. b.继承关系:如A类是B类的父类. c.聚合关系:如装橘子的箱子,箱子是否存在与里面装没装橘子没有任何关系,也就是说橘子不会影响箱子的存在. d.组合关系:如一个小组,小组是否存在与小组中是否有组员是息息相关的,如果没有组员,小组就不存在了. 监听器模式:事件源经过事件的封装传给监听器,当事件源触发事件后,监听器接收到事件对象可以回调事件的方法 观察者模式:观察者(Observer)相当于事件监听者,被观察者(Observable)相当于

[设计模式]Netd中的命令设计模式,NetworkManagementService中的监听者模式

命令模式中有如下的角色: (1)调用者(invoker) (2)命令接收者(receiver) (3)客户端(client) (4)命令对象(command) 1 public interface Command { 2 public void execute(); 3 } 4 public class ConcreteCommand implements Command { 5 6 private Receiver receiver = null; 7 private String state

《人人都懂设计模式》-监听模式

最近在撸这本书, 作个记录. from abc import ABCMeta, abstractmethod # 引入ABCMeta和abstractmethod来定义抽象类和抽象方法 import time """ # version 1.0 class WaterHeater: # 热水器, 战胜寒冬的有利武器 def __init__(self): self.__observers = [] self.__temperature = 25 def get_tempera

KVO监听者

监听者模式方便的监听所需要的值得变化 @implementation ViewController - (IBAction)Buton:(id)sender { self.view.backgroundColor=[UIColor redColor]; } - (void)viewDidLoad { [super viewDidLoad]; self.model=[[Model alloc]init]; //第一个参数是 被监听者 //第二个参数是  监听者 //第三个参数是  监听内容 //第

IOS设计模式之一(MVC模式,单例模式)

本文原文请见:http://www.raywenderlich.com/46988/ios-design-patterns. 由 @krq_tiger(http://weibo.com/xmuzyq)翻译,如果你发现有什么翻译错误,请与我联系谢谢. iOS 设计模式-你可能已经听说过这个词,但是你真正理解它意味着什么吗?虽然大多数的开发者可能都会认为设计模式是非常重要的,然而关于设计模式这一主题的文章却不多,并且有时候我们开发者在写代码的时候也不会太关注它. 在软件设计领域,设计模式是对通用问题

设计模式大类--行为模式(上)

大概有10中行为模式,分为上中下三篇.一.Template(模板)描述:定义一些操作算法的骨架,将其实现延迟到其子类好处:扩展性强 例子:Java的抽象类本来就是Template模式,因此使用很普遍.而且很容易理解和使用,我们直接以示例开始: public abstract class Benchmark{ /** * 下面操作是我们希望在子类中完成 */ public abstract void benchmark(); /** * 重复执行benchmark次数 */ public fina

Java设计模式补充:回调模式、事件监听器模式、观察者模式(转)

一.回调函数 为什么首先会讲回调函数呢?因为这个是理解监听器.观察者模式的关键. 什么是回调函数 所谓的回调,用于回调的函数. 回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数. 有这么一句通俗的定义:就是程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序.程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法. 举个例子: 这里有两个实体:回调抽象接口.回调者(即程序a) 回调接口(ICallBack ) public i