首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/u/4815822/blog/5015523

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

别再面向 for 循环编程了,Spring 自带的观察者模式就很香!

1. 概述 在设计模式中,观察者模式是一个比较常用的设计模式。维基百科解释如下: FROM zh.wikipedia.org/wiki/观察者模式 观察者模式是软件设计模式的一种。在此种模式中,一个目标对象管理所有相依于它的观察者对象,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。 此种模式通常被用来实时事件处理系统。 在我们日常业务开发中,观察者模式对我们很大的一个作用,在于实现业务的解耦。以用户注册的场景来举例子,假设在用户注册完成时,需要给该用户发送邮件、发送优惠劵等等操作,如下图所示: UserService 在完成自身的用户注册逻辑之后,仅仅只需要发布一个 UserRegisterEvent 事件,而无需关注其它拓展逻辑。 其它 Service 可以自己订阅 UserRegisterEvent 事件,实现自定义的拓展逻辑。 友情提示:很多时候,我们会把观察者模式和发布订阅模式放在一起对比。 简单来说,发布订阅模式属于广义上的观察者模式,在观察者模式的 Subject 和 Observer 的基础上,引入 Event Channel 这个中介,...

并发容器与并发控制 - JUC

摘要 为什么没见人用Vector和Hashtable了?HashMap它又线程不安全在哪里? ConcurrentHashMap的进化与骚操作有哪些? Copy-On-Write是个啥思想?有哪些例子? 为什么需要并发队列?又有哪些我们视而不见的并发的队列? 当我们想控制线程的先来后到时该咋办?一个个去讲道理吗? 并发容器 先总览一下这些并发容器都在整什么幺蛾子 1. Concurrent* 大部分是通过CAS实现并发 2. CopyOnWrite* 复制一份原数据 3. Blocking* 通过AQS实现 复制代码 一、为什么Vector和Hashtable被留在了历史的长河中? 很简单,别想太多,就是因为性能不好。 那为什么性能不好呢?它性能丢失在哪儿? 我们先看一看Vector的get方法: look, look, 这个 synchronized是直接修饰在方法上的,如果你上下翻翻,就可以发现基本上这个类的所有方法都是 synchronized修饰的。 那有人可能问了,为什么锁方法就性能差?因为这个锁粒度是实例对象呀 Hashtable也是如此。 二、为什么HashMap是...

相关文章

发表评论

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册