eventbus使用

[转]浅谈命令查询职责分离(CQRS)模式

戏子无情 提交于 2019-11-26 19:32:10
在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体。在一些业务逻辑简单的系统中可能没有什么问题,但是随着系统逻辑变得复杂,用户增多,这种设计就会出现一些性能问题。虽然在DB上可以做一些读写分离的设计,但在业务上如果在读写方面混合在一起的话,仍然会出现一些问题。 本文介绍了命令查询职责分离模式(Command Query Responsibility Segregation,CQRS),该模式从业务上分离修改 (Command,增,删,改,会对系统状态进行修改)和查询(Query,查,不会对系统状态进行修改)的行为。从而使得逻辑更加清晰,便于对不同部分进行针对性的优化。文章首先简要介绍了传统的CRUD方式存在的问题,接着介绍了CQRS模式,最后以一个简单的在线日记系统演示了如何实现CQRS模式。要谈到读写操作,首先我们来看传统的CRUD的问题。 一 CRUD方式的问题 在以前的管理系统中,命令(Command,通常用来更新数据,操作DB)和查询(Query)通常使用的是在数据访问层中Repository中的实体对象(这些对象是对DB中表的映射),这些实体有可能是SQLServer中的一行数据或者多个表。 通常对DB执行的增,删,改,查(CRUD)都是针对的系统的实体对象。如通过数据访问层获取数据,然后通过数据传输对象DTO传给表现层。或者

android十大开源框架

人盡茶涼 提交于 2019-11-26 13:59:24
1-1 课程导学 第2章 Okhttp网络库深入解析和相关面试题分析 本章主要先通过分析OKhttp的简单使用,对于OKhttp的调度器、拦截器、缓存策略、连接池等进行了相应的源码和原理分析,并对于socket、websocket、http缓存、多线程下载、文件下载、https等经典Android面试题进行分析。 2-1 okhttp框架流程分析 2-2 okhttp同步请求方法 2-3 okhttp异步请求方法 2-4 okhttp同步请求流程和源码分析 2-5 okhttp异步请求流程和源码分析-1 2-6 okhttp异步请求流程和源码分析-2 2-7 okhttp任务调度核心类dispatcher解析-1 2-8 okhttp任务调度核心类dispatcher解析-2 2-9 okhttp拦截器流程 2-10 okhttp拦截器链介绍 2-11 okhttp之RetryAndFollowUpInterceptor解析 2-12 okhttp之BridgeInterceptor解析 2-13 okhttp缓存策略源码分析:put方法 2-14 okhttp缓存策略源码分析:get方法 2-15 okhttp拦截器之CacheInterceptor解析 2-16 okhttp拦截器之ConnectInterceptor解析-1 2-17

Guava学习笔记:EventBus

房东的猫 提交于 2019-11-26 11:56:19
  EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和接口层次结构。   Observer模式是比较常用的设计模式之一,虽然有时候在具体代码里,它不一定叫这个名字,比如改头换面叫个Listener,但模式就是 这个模式。手工实现一个Observer也不是多复杂的一件事,只是因为这个设计模式实在太常用了,Java就把它放到了JDK里 面:Observable和Observer,从JDK 1.0里,它们就一直在那里。从某种程度上说,它简化了Observer模式的开发,至少我们不用再手工维护自己的Observer列表了。不过,如前所 述,JDK里的Observer从1.0就在那里了,直到Java 7,它都没有什么改变,就连通知的参数还是Object类型。要知道,Java 5就已经泛型了。Java 5是一次大规模的语法调整,许多程序库从那开始重新设计了API,使其更简洁易用。当然,那些不做应对的程序库,多半也就过时了。这也就是这里要讨论知识 更新的原因所在。今天,对于普通的应用,如果要使用Observer模式该如何做呢?答案是Guava的EventBus。   EventBus 基本用法:   使用Guava之后, 如果要订阅消息,