概述 观察者模式又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种. 它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象.这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己. 简单实现 主题接口和观察者接口 //主题接口 public interface Subject { //登记 void register(Observer observer); //注销登记 void unregister(Observer obser…
观察者模式 结构图 代码实现 public abstract class Subject { private List<Observer> observerList = new ArrayList<Observer>(); /** * 注册观察者 * @param observer */ public void register(Observer observer) { observerList.add(observer); } /** * 注销观察者 * * @param obs…
本文分为三个部分:   Observer(观察者) Guava EventBus详解 Guava EventBus使用示例   1. Observer(观察者)   1.1 背景   我们设计系统时,常常会将系统分割为一系列相互协作的类,使得这些类之间可以各自独立地复用,系统整体结构也会比较清晰.这是一种最基本的面向对象的设计方式,大多数情况下也非常有效.但是,如果这些相互协作的类之间的“协作”关系比较复杂,那么就会有副作用:需要维护这些类对象间的状态一致性.   我们以一个数据可视化系统为例来…
一.架构速读 传统上,Java的进程内事件分发都是通过发布者和订阅者之间的显式注册实现的.设计EventBus就是为了取代这种显示注册方式,使组件间有了更好的解耦.EventBus不是通用型的发布-订阅实现,不适用于进程间通信. 架构图如下: . 二.简单使用 步骤如下: 1.构造一个事件总线 2.构造一个事件监听器 3.把事件监听器注册到事件总线上 4.事件总线发布事件,触发监听器方法 主测试类如下: package guava.eventbus; import com.google.comm…
http://www.cnblogs.com/peida/tag/Guava/ Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉悦.下面我们就开启优雅Java…
Google Guava官方教程(中文版) 原文链接  译文链接 译者: 沈义扬,罗立树,何一昕,武祖  校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] .缓存 [caching] .原生类型支持 [primitives support] .并发库 [concurrency libraries] .通用注解 [common annotations] .字符串处理 [string processing] .I/O…
Guava地址:https://github.com/google/guava 第一次接触我是在16年春github上,当时在找单机查缓存方法,google guava当初取名是因为JAVA的类库不好用,所以谷歌工程师自己开发一套,想着google出品必属精品理念,我们一起来了解一下. guava在还没做分布式处理上,单机单整合上大行其道.所以guava在程序性能优化上下了不少的工夫,我们称其为单块架构的利器 我认为强大的有几点:1.集合处理   2.EventBus消息总线处理  3.guav…
     以下资料整理自网络 一.Google Guava入门介绍 引言 Guavaproject包括了若干被Google的 Java项目广泛依赖 的核心库,比如:集合 [collections] .缓存 [caching] .原生类型支持 [primitives support] .并发库 [concurrency libraries] .通用注解 [common annotations] .字符串处理 [string processing] .I/O 等等. 全部这些工具每天都在被Googl…
Guava 是一个 Google开发的 基于java的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVA代码更加优雅,更加简洁,让你工作更加轻松愉悦.下面我们就简单的介绍一下Guava的大致的功能! Guava项目托管在github上,可以使用sudo gi…
一.Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉悦.下面我们就开启优雅Java编程学习之旅! 项目相关信息: 官方首页:http://code.googl…