博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单的对象监听器 观察者设计模式
阅读量:6673 次
发布时间:2019-06-25

本文共 1085 字,大约阅读时间需要 3 分钟。

该代码实现了一个可以注册监听类的类,如果注册了监听类,那么在类的一个方法执行前会执行监听类的方法。并且该监听类方法的参数就是被监听对象。

监听类就是事件监听器,被监听对象就是事件源,事件监听器的参数就是事件对象。

//设计一个事件源,被监听器监听  Observer(观察者设计模式)

public class Demo2 {

 

       public static void main(String[] args) {

             

              Person p = new Person();

              p.registerListener(new PersonListener(){

 

                     public void doeat(Event e) {

                            Person p = e.getSource();

                            System.out.println(p + "吃个死");

                     }

 

                     public void dorun(Event e) {

                            // TODO Auto-generated method stub

                     }

                    

 

              });

              p.eat();

       }

 

}

 

class Person{

      

       private PersonListener listener;

      

       public void eat(){

              if(listener!=null){

                     listener.doeat(new Event(this));

              }

       }

      

       public void run(){

              if(listener!=null){

                     listener.dorun(new Event(this));

              }

       }

      

       public void registerListener(PersonListener listener){

              this.listener = listener;

       }

}

 

interface PersonListener{

      

       public void doeat(Event e);

      

       public void dorun(Event e);

      

}

 

class Event{

      

       private Person source;

       public Event() {

              super();

              // TODO Auto-generated constructor stub

       }

 

       public Event(Person source) {

              super();

              this.source = source;

       }

 

       public Person getSource() {

              return source;

       }

 

       public void setSource(Person source) {

              this.source = source;

       }

      

}

转载地址:http://wxrxo.baihongyu.com/

你可能感兴趣的文章
袁帅:用科技技术助力效益转化 剖析当前会议互动中的移动互联网科技
查看>>
关于机器级二进制位移
查看>>
windows7 10 windows2008 windws2012 nfs客户端的安装
查看>>
Spring Cloud--Honghu Cloud分布式微服务云系统—System系统管理
查看>>
MySQL数据库源码包安装(5.7最新版本)
查看>>
CentOS 7 yum安装zabbix 设置中文界面
查看>>
Django1.11启动错误:Generator expression must be parent
查看>>
SSH协议服务器、SUDO用法以及PAM机制
查看>>
CSS如何让li 4个一行显示
查看>>
杭州雄迈信息技术有限公司被评为“杭州市专利试点企业”
查看>>
ManageEngine网络管理软件新特点
查看>>
美团即时物流的分布式系统架构设计
查看>>
Win7获KB4493132更新
查看>>
锐龙R3 2200G和Intel i3-8100选哪个好
查看>>
HP ILO2 使用详细教程
查看>>
常用软介质下载
查看>>
Oracle教程之Oracle管理约束(一)--Oracle约束基本概念
查看>>
Oracle RAC OCR 的备份与恢复
查看>>
配置Vsphere vCenter 5.5安装使用远程Oracle数据库
查看>>
xenserver迁移至kvm记录
查看>>