代理模式(静态代理) 代理模式是为其他对象提供一种代理以控制对这个对象的访问。 定义上也不算好理解, 上一个 《大话设计模式》 的图。 Subject 类(一般是抽象类或接口), 定义了一个方法。 RealSubject 类实现了这个接口, 正常的情况我们只需要 new 出这个类的实例对象, 然后调 ...
分类:
其他好文 时间:
2018-09-03 22:30:25
阅读次数:
256
Java 有两种代理方式,一种是静态代理,另一种是动态代理。对于静态代理,其实就是通过依赖注入,对对象进行封装,不让外部知道实现的细节。很多 API 就是通过这种形式来封装的。 代理模式结构图(图片来自《大话设计模式》) 下面看下两者在概念上的解释: 静态代理 静态代理类:由程序员创建或者由第三方工 ...
分类:
编程语言 时间:
2018-09-03 02:43:56
阅读次数:
158
中介者模式 用一个中介对象来封装一系列对象的交互。中介者使各个对象不需要显示的相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。 涉及到的角色描述 - Mediator:抽象中介者角色,定义了同事对象到中介者对象的接口。 - ConcreteMediator:具体中介者角色,它从具体的同 ...
分类:
其他好文 时间:
2018-08-29 14:31:26
阅读次数:
197
桥接模式 将抽象部分与他的实现部分分离,使他们可以独立的变化 抽象与实现分离并不是说 让抽象类与其派生类分离,因为这没有任何意义。实现是指抽象类和它的派生类用来实现自己的对象. 桥接模式主要包含如下几个角色: Abstraction:抽象类。 RefinedAbstraction:扩充抽象类。 Im ...
分类:
其他好文 时间:
2018-08-27 21:51:27
阅读次数:
215
组合模式 将对象组合成树形结构以表示‘部分--整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性 涉及到的角色描述 在组合模式结构图中包含如下几个角色: ● Component(抽象构件):它可以是接口或抽象类,为叶子构件和容器构件对象声明接口,在该角色中可以包含所有子类共有行为 ...
分类:
其他好文 时间:
2018-08-27 18:41:14
阅读次数:
179
策略模式 定义了一系列的算法,分别封装起来,让他们之间可以互相替换。此模式让算法的改变不会影响到使用算法的客户。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 这个模式涉及到三个角色: 环境(Cont ...
分类:
其他好文 时间:
2018-08-20 12:22:50
阅读次数:
130
装饰模式在对象动态增加功能方面优于继承,用装饰模式替代继承,比继承更加灵活。 小菜扮靓第三版 小菜扮靓第二版 ...
分类:
编程语言 时间:
2018-07-27 23:17:57
阅读次数:
269
来自网络博客: step1:《Java编程思想》 1year; 看书的最终目的是为了引发自己的思考,只看书不思考的话,那叫背书,不叫看书《大话设计模式》《重构 改善既有代码的设计》《深入理解Java虚拟机》《effective java》《Java并发编程实战》 step2:《深入理解计算机系统》《 ...
分类:
其他好文 时间:
2018-07-24 14:57:31
阅读次数:
149
观察者模式 定义了一种一对多的依赖关系,让多个观察者对象去监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。 下面通过代码去探索观察者模式的奥秘: 通过main方法测试看看效果 接下来解读下上述代码: 观察者模式的关键对象时主题subject和观察者Ob ...
分类:
其他好文 时间:
2018-07-24 11:52:22
阅读次数:
132
单例模式 一个类有且只有一个实例; 特点 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式的几种实现方式 一:饿汉式 饿汉式是指在类加载的过程中就完成了实例化;避免了多线程问题,因此属于线程安全;但是没有达到 lazy load ...
分类:
其他好文 时间:
2018-07-19 19:17:29
阅读次数:
151