先举个小例子,差不多就了解观察者模式是什么玩意了
比如有一个天气数据中心,
有2个app(如墨迹天气、天气预报)的数据都是订阅这个数据中心的
当天气数据中心得到最新的天气情况,就会触发一个通知,通知所有的观察者,即上文说的墨迹天气、天气预报
这时候又来了一个新的天气app,比如某...
汪明鑫
6年前 (2019-09-16) 1088浏览 0评论
7喜欢
今天9月11号,标题却用9.10
因为这篇文章本来应该昨晚写的,因时间原因到家都不早了,
昨天9月10号是教师节,提醒着我们要时时抱有感恩之心
人如果没有感恩之心,畜生不如
也是发工资的日子,工资一发,还钱就还了6500,之前租房子借的钱。。。
9月10日也是阿里巴巴的生日,20...
汪明鑫
6年前 (2019-09-11) 949浏览 0评论
0喜欢
ThreadLocal ,线程本地存储,
一个Thread就会绑定一个ThreadLocal,用来当前线程数据的存取
只对当前线程可见,线程之间是不可见的
我们先从ThreadLocal的set方法来讨论:
java.lang.ThreadLocal#set
pub...
汪明鑫
6年前 (2019-09-09) 1023浏览 0评论
0喜欢
HashMap,HashTable,ConcurrentHashMap 这三兄弟基本面试必问
工作和学习中也会经常遇到
Jdk中的所有数据结构源码都需要过一遍吗?
我也不知道,反正我不会,因为水平不够,再来是代价太大,
Jdk源码写的还是很牛逼的
我是想起来闲的话源码点进去瞅两...
汪明鑫
6年前 (2019-09-09) 884浏览 0评论
0喜欢
前言
学习命令模式痛苦的地方就是很多用不到,
真正开发也很少会刻意去写,就算用到也是有几个比较常见的
但还是得逼着自己看设计模式。。。
为了实现下一步研究spring源码的目标,硬着头皮去看点喽
接下来计划学习访问者模式、迭代者模式、观察者模式。。。一步步来吧
计划9月底前把设计...
汪明鑫
6年前 (2019-09-07) 979浏览 0评论
0喜欢
谈到代理模式,绕不开静态代理、动态代理
谈到动态代理绕不开jdk方式和cglib方式
自然而言也就想到了spring aop的实现就是用了动态代理
AOP编程中如何选择代理模式:
目标对象需要实现接口,用JDK代理
目标对象不需要实现接口,用Cglib代理
还有mybatis...
汪明鑫
6年前 (2019-09-04) 911浏览 0评论
0喜欢
项目中实际都是多模块项目,没有实际从0到1搭过,
今天实操了一遍,和直接创建一个spring boot项目还是有一定差别的
spring boot搭建maven多模块,依赖都由父pom来管理,
子模块需要什么依赖就引入什么依赖,不用管版本号
且不同模块也可以相互依赖...
汪明鑫
6年前 (2019-09-03) 953浏览 0评论
0喜欢
不要吞掉原异常,可以打log或者再抛出去;
不要在for循环中try-catch;
不要使用异常来控制业务逻辑;
不要直接捕获泛泛的异常 Exception;
try-catch的代码快不要太大,不好定位,会降低jvm优化效率;
try-catch产生性能问题,会落快照;
不知...
汪明鑫
6年前 (2019-08-30) 839浏览 0评论
0喜欢
前言
装饰者模式顾名思义,做一个装饰
对原有逻辑进行一个包装,锦上添花
动态的把新功能附加到对象上,就像插件一样,即插即用
是继承的替代方案,但比只用的继承的承弹性更大,更灵活,且遵循设计模式原则
类图
Component:抽象组件(可以是抽象类...
汪明鑫
6年前 (2019-08-27) 1012浏览 0评论
0喜欢
前言
解耦抽象和实现,使得两者可以独立的变化。
多重继承的替代方案
此处的 抽象 并不是指 抽象类 或 接口 这种高层概念,实现 也不是 继承 或 接口实现 。
抽象 与 实现 其实指的是两种独立变化的维度。其中,抽象 包含 实现,因此,一个 抽象 类的变化可能涉及到多种维度的变...
汪明鑫
6年前 (2019-08-26) 963浏览 0评论
0喜欢