软件设计模式
春秋战国程序猿
仓廪实而知礼节,衣食足而知荣辱
展开
-
原型模式使用手册,如何正确使用原型模式
原型模式属于创建型设计模式,可以重复的创建对象,并且保证效率。什么意思呢?也就是说,当我们大批量创建对象时,使用原型模式,会更高效。这里隐含1层含义:1,当数据量达到一定规模是,原型模式创建对象的效率高于new对象。真的吗,我们来试试。首先创建2个bean,一个是普通的javabean,一个是实现了Cloneable接口的javabeanpackage com.yangcq.learning.hantang.learning;import lombok.Data;...原创 2020-08-18 15:16:11 · 474 阅读 · 0 评论 -
如何在lambda内部修改外部局部变量的值/如何用lambda重构for循环计数
Talk is cheap, show me your code!看一段代码:/** * 在lambda表达式内部,修改lambda表达式外部的局部变量的值 */private synchronized void updateLocalVariable() { List<String> list = new ArrayList<>(); ...原创 2019-11-28 09:32:20 · 11532 阅读 · 2 评论 -
实现单例模式需要考量的几个点(思路)
单例模式是一个老生常谈的话题了,如何实现呢?我们这里不再赘述,我们这里梳理一下思路,看看设计一个单例模式需要考虑的问题。1,延迟加载new操作放在方法内部,不要作为类的静态成员变量暴露给调用者。2,只实例化一次实例化之前先判断是否为null。3,线程安全有多种思路:synchronized关键字,内部类等。synchronized关键字其实就是加...原创 2019-10-24 13:12:10 · 535 阅读 · 0 评论 -
Java代理模式详解及案例分析:静态代理/动态代理
标题:Java代理模式详解及案例分析:静态代理/动态代理我们以几个问题,来开始我们今天的学习,如果下面几个问题,你都能说出个一二,那么恭喜你,你已经掌握了这方面的知识。1,什么是代理模式?2,Java中,静态代理与动态代理的区别?3,Spring使用的是JDK的动态代理,还是CGLIB的动态代理?4,JDK的动态代理的实现原理?5,JDK的动态代理与CGLIB的动态代理转载 2016-11-03 19:56:58 · 4369 阅读 · 0 评论 -
再看观察者模式Observer
什么是观察者模式? 定义:观察者模式,定义了对象之间的一对多的依赖关系,当被观察者发生改变时,所有依赖被观察者的对象,都会被通知,并且做出相应的改变。 观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于转载 2016-10-01 05:34:48 · 630 阅读 · 0 评论 -
动态代理的疑问:在程序的编译阶段,new操作都做了什么
OK ,我们来回顾一下,之前的博文《Java代理模式详解及案例分析:静态代理/动态代理 》提出的几个问题:1,什么是代理模式?2,Java中,静态代理与动态代理的区别?3,Spring使用的是JDK的动态代理,还是CGLIB的动态代理?4,JDK的动态代理的实现原理?5,JDK的动态代理与CGLIB的动态代理的实现上,有何不同?6,你知道的,还有其他动态代理技术吗?请简述实原创 2017-01-14 06:40:11 · 1369 阅读 · 2 评论