摘要:
注入对象,改变行为。 这是一个很有意思的模式,它可以有多种表现形式,只要满足注入对象,改变行为。 学习这个模式,必须忘记网上和书上的标准类图。 案例 Comparator: Arrays.sort(T[], Comparator) 注入不同的Comparator,排序的方式也不同。 这是最常见的策略 阅读全文
posted @ 2020-11-07 23:09
qianbuhan
阅读(60)
评论(0)
推荐(0)
摘要:
使用不同的标准来过滤一组对象。在过滤器链里不断地doFilter() 案例 spring SecurityFilterChain 以下代码省略了许多无关代码。 // FilterChainProxy 类 private void doFilterInternal(ServletRequest req 阅读全文
posted @ 2020-11-07 17:41
qianbuhan
阅读(94)
评论(0)
推荐(0)
摘要:
使用不完全匹配的功能(目的是合并)。 案例 AOP BeforeAdvice 黄色是适配器,把橙色装入紫色,变成蓝色的子类,供绿色使用。 就完成了橙色到蓝色的适配。 黄色代码: public MethodInterceptor getInterceptor(Advisor advisor) { Me 阅读全文
posted @ 2020-11-07 15:38
qianbuhan
阅读(42)
评论(0)
推荐(0)
摘要:
把两个对象组合起来,配合工作(目的是分离)。 将两个维度的功能组合起来,使其独立变化。 比如Spring中的分层,把controller、service和dao层分开,就是桥接。 阅读全文
posted @ 2020-11-07 14:39
qianbuhan
阅读(50)
评论(0)
推荐(0)
摘要:
用于创建重复的对象,同时又能保证性能。 就是克隆。 比如 spring @Scope(“prototype”),太复杂了,没空研究。 阅读全文
posted @ 2020-11-07 14:23
qianbuhan
阅读(41)
评论(0)
推荐(0)
摘要:
确保一个类只有一个实例,并提供一个全局访问点。 这个最经典的就是Spring了,在Spring中创建单例太简单了,这里不介绍Spring。 构造函数私有化提供全局访问点 懒汉式 class Single { public final static Single INSTANCE = new Sing 阅读全文
posted @ 2020-11-07 13:37
qianbuhan
阅读(41)
评论(0)
推荐(0)
摘要:
把复杂的构建过程封装起来,这种模式用途很广泛,所有以Builder结尾的类几乎都是建造者模式。 比如最常用的StringBuilder,从它的使用上可以看出建造者模式的易用性极强。 StringBuilder builder = new StringBuilder(); builder.append 阅读全文
posted @ 2020-11-07 13:20
qianbuhan
阅读(59)
评论(0)
推荐(0)
摘要:
按系列生产 案例 数据库驱动 生产mysql驱动系列对象,可以方便的扩展其他驱动,只需引入对应的jar包 阅读全文
posted @ 2020-11-07 12:29
qianbuhan
阅读(53)
评论(0)
推荐(0)
摘要:
将工厂类抽象出一个接口,对象的创建方法延迟到工厂子类去实现。 案例 spring getBeanFactory() 阅读全文
posted @ 2020-11-07 11:13
qianbuhan
阅读(54)
评论(0)
推荐(0)
摘要:
由于很多人对这种模式有偏见,认为它是有缺陷的,我要给他正个名: 它并不是一个真正的模式,但是也有他的应用场景,所谓不要拘泥于模式 作用:由一个工厂类负责一种产品对象的创建。把对象的使用和创建分开,便于集中管理。 优点:简单易懂 应用场景:不变的业务,因此并没有违背对修改关闭,因为不可能修改它;也没有 阅读全文
posted @ 2020-11-07 10:28
qianbuhan
阅读(69)
评论(0)
推荐(0)

浙公网安备 33010602011771号