随笔分类 - Java 设计模式
摘要:概述 在调用某个方法时,如果想增强某个方法,又不修改方法源码,这时候就会用到动态代理。 简单来说,就是对方法进行拦截,注入新的逻辑。 1、创建接口 public interface Person { void eat(); } 2、新建实现类 public class PersonImpl impl
阅读全文
摘要:1.定义 将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 2.介绍 适配器模式属于结构型模式。 适配器模式有类适配器模式和对象适配器模式这两种。 生活中的手机充电器就是一个适配器的例子,手机一般都是在5V的电压下进行充电,但是外部的电压都
阅读全文
摘要:参考:https://www.jianshu.com/p/e1e1eb7d22cf 外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。 1.定义 要求一个子系统的
阅读全文
摘要:1.定义 将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。 2.介绍 组合模式属于结构型模式。 组合模式有时叫做部分—整体模式,主要是描述部分与整体的关系。 组合模式实际上就是个树形结构,一棵树的节点如果没有分支,就是叶子节点;如果存在分支,则是树枝
阅读全文
摘要:1.定义 代理模式是一种对象结构型模式,为其他对象提供一种代理以控制这个对象的访问。 在代理模式中引入了一个新的代理对象,代理对象在客户端对象和目标对象之间起到中介的作用,它去掉客户不能看到的内容和服务或者增添客户需要的额外的新服务。 2.介绍 代理模式属于结构型模式。 代理模式也叫委托模式。 生活
阅读全文
摘要:参考:https://www.jianshu.com/p/c8a63849d629 1.定义 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到先前保存的状态。 2.介绍 备忘录模式属于行为型模式。 备忘录模式比较适合用于功能复杂,但是需要维护和
阅读全文
摘要:参考:https://www.jianshu.com/p/f4917cb02752 1.定义 提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。 2.介绍 迭代器模式属于行为型模式。 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 Java中的Map、List等
阅读全文
摘要:参考:https://www.jianshu.com/p/9a480322aee1 1.定义 定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。 2.介绍 模板方法模式属于行为型模式。 模板方法模式主要是用来定义一套流程下来的固定步骤,
阅读全文
摘要:参考:https://www.jianshu.com/p/8f32da74cd8b 观察者模式是设计模式中的“超级模式”,其应用随处可见。 1.定义 定义对象间的一种一个对多的依赖关系,当一个对象的状态发送改变时,所以依赖于它的对象都得到通知并被自动更新。 2.介绍 观察者属于行为型模式。 观察者模
阅读全文
摘要:1.定义 将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录日志,可以提供命令的撤销和恢复功能。 2.介绍 命令模式属于行为型模式。 我们遇到最常见的命令模式就是关机操作了,我们只需点击一下关机按钮就可以了,至于计算机是如何关机的,我们不需要关心其实现细节。 3.UM
阅读全文
摘要:参考:https://www.jianshu.com/p/7fa31c57cbb5 1.定义 一个请求沿着一条“链”传递,直到该“链”上的某个处理者处理它为止。 2.介绍 责任链模式属于行为型模式。 多个对象中,每个对象都持有下一个对象的引用,这就构成了链这种结构。 一个请求通过链的头部,一直往下传
阅读全文
摘要:参考:https://www.jianshu.com/p/ddcb8eb175f5 1.定义 定义一系列的算法,把每一个算法封装起来,并且使它们可相互替换。策略模式模式使得算法可独立于使用它的客户而独立变化。 2.介绍 策略模式属于行为型模式。 策略模式提供了一组算法给客户端调用,使得客户端能够根据
阅读全文
摘要:参考:https://www.jianshu.com/p/6d1333917ae5 1.定义 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 2.介绍 原型模式属于创建型模式。 一个已存在的对象(即原型),通过复制原型的方式来创建一个内部属性跟原型都一样的新的对象,这就是原型模式。
阅读全文
摘要:参考https://www.jianshu.com/p/154948d5adc6 1.定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 2.介绍 建造者模式属于创建型模式。 建造者模式主要用来创建复杂的对象,用户可以不用关心其建造过程和细节。 例如:当要组装一台电脑时
阅读全文
摘要:一、引言 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需
阅读全文
摘要:转载出处:http://www.blogjava.net/kenzhh/archive/2013/03/15/357824.html 第一种 懒汉式,线程不安全 这种方法在需要使用对象的时候才去实例化,多个地方同时调用,它是线程不安全的. 第二种 懒汉式,线程安全 这种写法能够在多线程中很好的工作,
阅读全文
posted @ 2016-03-04 09:49
随易来了

浙公网安备 33010602011771号