1) 意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新 2) 结构 Subject提供注册和删除观测者的接口 Observer 定义一个抽象的更新接口 ConcreteSubject 是实际被观测的对象,当状态改变时,通知各个观测者 Con ...
分类:
编程语言 时间:
2020-01-28 19:37:10
阅读次数:
78
有关java的动态代理和代理模式 一, 有关设计模式==设计模式可分为以下三类==创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式 ...
分类:
编程语言 时间:
2020-01-28 17:38:31
阅读次数:
98
1) 意图 在不破坏封装性的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态。这样可以将对象恢复到原先保存的状态 2) 结构 其中 Memento (备忘录)存储Originator内部状态 Originator(原发器)创建一个Memento,用于记录当前时刻它的内部状态 Caretake ...
分类:
编程语言 时间:
2020-01-28 17:28:18
阅读次数:
87
1) 意图 用一个中介对象来封装一系列的对象交互,中介者使各个对象不需要显示地相互应用,从而使其耦合松散,并且可以独立地改变它们之间的交互 2) 结构 其中: Mediator定义一个接口用于各同事对象的通信 ConcreteMediator 通过协调各个Colleague 类对象实现协助行为 Co ...
分类:
编程语言 时间:
2020-01-28 14:03:08
阅读次数:
77
1) 意图 提供一种方法顺序访问一个聚合对象中的各个元素,且不需要暴露该对象的内部表示 2) 结构 其中: Iterator定义访问和遍历元素的接口 ConcreteIterator实现迭代器接口,对该聚合遍历时跟踪当前位置 Aggregate定义创建相应迭代器对象的接口 ConcreteAggre ...
分类:
编程语言 时间:
2020-01-27 09:23:50
阅读次数:
58
在脉脉上看过一个帖子:在工作中最常用的设计模式都有哪些? 总结一下这些出现频率高的设计模式(排名不分先后) 创建型设计模式 工厂模式(简单工厂、抽象工厂、工厂方法) 单例模式 结构型设计模式 装饰器模式 组合模式 行为型设计模式 责任链模式 策略模式 注意: 设计模式不是解决所有问题的灵丹妙药。 不 ...
分类:
其他好文 时间:
2020-01-26 17:24:05
阅读次数:
448
1) 意图 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子 2) 结构 其中 AbstractExpression声明一个抽象的解释操作 TerminalExpression(终结符解释器)实现与文法中的终结符相关联的解释操作 NonterminalE ...
分类:
编程语言 时间:
2020-01-26 11:49:14
阅读次数:
81
1) 意图 将一个请求封装为一个对象,从而使得可以用不同的请求对客户进行参数化;可以对请求排队或记录日志,以及撤销的操作 2) 结构 其中 Command 声明执行操作的接口 ConcreteCommand 将一个接受者对象绑定于一个动作 Client创建一个具体命令对象并设定它的接受者 Invok ...
分类:
编程语言 时间:
2020-01-26 10:32:26
阅读次数:
80
1) 意图 使多个对象连成一条链,沿着这条链传递请求,直到有个对象处理它为止。 2) 结构 其中: Handler定义一个处理请求的接口 ConcreteHandler处理它所负责的请求 Client向链上具体处理提交请求 3) 适用性 有多个对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定 ...
分类:
编程语言 时间:
2020-01-25 22:12:08
阅读次数:
81
模式介绍 在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据该模式,元素对象接受访问者对象,这样访问者对象就可以处理元素对象上的操作。 模式优点 1、将数据结 ...
分类:
其他好文 时间:
2020-01-25 20:42:13
阅读次数:
71