java监视器简单实现

导读:本篇文章讲解 java监视器简单实现,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

文章目录

事件

public interface IEvent {
	void setEventListener(IEventListener arg);

	boolean rain();

	boolean snow();
}

事件监听器

public interface IEventListener {
	void doEvent(IEvent arg); 
}

事件源

public class RainEvent implements IEvent {
	private IEventListener ml;

	private boolean rain;

	@Override
	public void setEventListener(IEventListener arg) {
		ml = arg;
	}

	@Override
	public boolean rain() {
		return rain;
	}

	@Override
	public boolean snow() {
		return false;
	}


	public void eventHappened() {
		rain = true;
		ml.doEvent(this);
	}
}

事件源

public class SnowEvent implements IEvent {
	private IEventListener ml;
	boolean rain;
	boolean snow;

	@Override
	public void setEventListener(IEventListener arg) {
		ml = arg;
	}

	@Override
	public boolean rain() {
		return rain;
	}

	@Override
	public boolean snow() {
		return snow;
	}

	
	public void eventHappened() {
		snow = true;
		ml.doEvent(this);
	}

}

测试运行

public class Test {
	public static void main(String[] args) {  
		  
        // 事件源(被监听的对象)  
        RainEvent rainEvent = new RainEvent();  
        SnowEvent snowEvent = new SnowEvent();  
        // 监听器  
        IEventListener mEventListener = new IEventListener() {  
            @Override  
            public void doEvent(IEvent arg) {  
                if (true == arg.rain()) {  
                    System.out.println("下雨了");  
                }else if(true == arg.snow()){  
                    System.out.println("下大雪啦!");  
                }  
            }  
        }; 
  
        // 注册监听器到事件源  
        rainEvent.setEventListener(mEventListener);  
        rainEvent.eventHappened();
          
        // 注册监听器到事件源  
        snowEvent.setEventListener(mEventListener);  
        snowEvent.eventHappened();  
    }  
}

原理我还没弄明白。简单的DEMO不难。

后言

  • 文章是个人知识点整理总结,如有错误和不足之处欢迎指正。
  • 如有疑问、或希望与笔者探讨技术问题(包括但不限于本章内容),欢迎添加笔者微信(o815441)。请备注“探讨技术问题”。欢迎交流、一起进步。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/69824.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!