摘要: 备忘录模式的核心: 就是保存某个对象内部状态的拷贝,这样以后就可以将该对象恢复到原先的状态。 备忘录模式的结构: 源发器类Originator:负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可以使用备忘录恢复内部状态; 备忘录类Memento:负责存储Originator对象的内 阅读全文
posted @ 2018-01-11 17:11 jianhuazhao 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 观察者模式主要用于 1:N的通知。当一个对象(目标对象Subject或Objservable)的状态变化时,他需要及时告知一系列对象(观察者对象Observer),令它们做出响应。 通知观察者的方式: 推:每次都会把通知以广播的形式发送给所有观察者,所有观察者只能被动的接收。 拉:观察者只要知道有情 阅读全文
posted @ 2018-01-11 16:43 jianhuazhao 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 状态模式的核心:用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。 应用场景:当需要频繁的修改状态时,考虑使用状态模式。 状态模式的结构: 1.Context环境类:环境类中维护一个State对象,它是定义了当前的状态; 2.State抽象状态类; 3.ConcreteState具体状态 阅读全文
posted @ 2018-01-11 15:56 jianhuazhao 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式是编程中常用的模式。它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。 模板方法模式的核心: 处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不能确定。因此,我们采用工厂方法模式,将这个节点的代码 阅读全文
posted @ 2018-01-11 14:43 jianhuazhao 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 策略模式对应于解决某一问题的一个算法族,允许用户从该算法族中任选一个算法解决某一问题,同时可以方便的更换算法或者增加新的算法,并且由客户端选择调用哪个算法。 本质:分离算法,选择实现。 下面是代码实现: 首先,创建Strategy接口: 针对接口创建不同的实现类: 创建Context上下文类,用来管 阅读全文
posted @ 2018-01-11 14:34 jianhuazhao 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 命令模式: 将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。也称之为:动作Action模式,事务Transaction模式。 命令模式的结构: Command 抽象命令类 ConcreteCommand 具体命令类 Invoker 阅读全文
posted @ 2018-01-11 14:23 jianhuazhao 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2018-01-10 17:14 jianhuazhao 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 中介者模式的核心: 如果一个系统中对象之间的联系呈现为网状结构,对象之间存在大量多对多关系,将导致关系及其复杂,这些对象称为“同事对象”。这里可以引入一个中介者对象,使各个同事只跟中介者对象打交道,将复杂的网络结构化解成星型结构。 用公司部门管理的例子来说明: 创建中介者接口与部门接口 创建各个子部 阅读全文
posted @ 2018-01-10 15:51 jianhuazhao 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式的定义: 提供一种可以遍历聚合对象的方式,又称为:游标cursor模式。 聚合对象:负责存储数据; 迭代器:负责遍历数据。 下面用代码来实现自定义的迭代器: 创建迭代器接口: 创建自定义聚合类,在聚合类中将迭代器类作为内部类,可以直接使用外部类的属性: 客户端测试: 运行结果 阅读全文
posted @ 2018-01-10 13:57 jianhuazhao 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 责任链模式定义: 将能够处理同一类请求的对象连成一条链,所提及的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传递给链上的下一个对象。 责任链属于行为型模式的一种。行为型模式关注系统中对象之间的相互交互,研究系统在运行时对象之间的相互通信和协作,进一步明确对象的职责 阅读全文
posted @ 2018-01-10 11:36 jianhuazhao 阅读(296) 评论(0) 推荐(0) 编辑