本文节选自《设计模式就该这样学》
1 基于Java API实现通知机制
当小伙伴们在社区提问时,如果有设置指定用户回答,则对应的用户就会收到邮件通知,这就是观察者模式的一种应用场景。有些小伙伴可能会想到MQ、异步队列等,其实JDK本身就提供这样的API。我们用代码来还原这样一个应用场景,首先创建GPer类。
1 | java复制代码 |
然后创建问题Question类。
1 | java复制代码 |
接着创建老师Teacher类。
1 | java复制代码 |
最后编写客户端测试代码。
1 | java复制代码 |
运行结果如下图所示。
2 基于Guava API轻松落地观察者模式
笔者向大家推荐一个实现观察者模式的非常好用的框架,API使用也非常简单,举个例子,首先引入Maven依赖包。
1 | java复制代码 |
然后创建侦听事件GuavaEvent。
1 | java复制代码 |
最后编写客户端测试代码。
1 | java复制代码 |
3 使用观察者模式设计鼠标事件响应API
再来设计一个业务场景,帮助小伙伴们更好地理解观察者模式。在JDK源码中,观察者模式的应用也非常多。例如java.awt.Event就是观察者模式的一种,只不过Java很少被用来写桌面程序。我们用代码来实现一下,以帮助小伙伴们更深刻地了解观察者模式的实现原理。首先,创建EventListener接口。
1 | java复制代码 |
创建Event类。
1 | java复制代码 |
创建EventContext类。
1 | java复制代码 |
然后创建MouseEventType接口。
1 | java复制代码 |
创建Mouse类。
1 | java复制代码 |
创建回调方法MouseEventLisenter类。
1 | java复制代码 |
最后编写客户端测试代码。
1 | java复制代码 |
关注『 Tom弹架构 』回复“设计模式”可获取完整源码。
本文为“Tom弹架构”原创,转载请注明出处。技术在于分享,我分享我快乐!如果本文对您有帮助,欢迎关注和点赞;如果您有任何建议也可留言评论或私信,您的支持是我坚持创作的动力。关注『 Tom弹架构 』可获取更多技术干货!
本文转载自: 掘金