摘要:
观察者模式 观察者模式(Observer Pattern),又叫发布-订阅(Publisher/Subscribe)模式,模型-视图模式,源-监听器模式或从属者模式。定义一种一对多的依赖关系,一个主题对象可以同时被多个监听者同时监听,使得每当主题对象状态发生变化时,所有依赖于它的对象都会得到通知并被 阅读全文
摘要:
解释器模式(InterPreter Pattern) 解释器模式是指给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用 该表示 来解释语言中的句子,并按照规定的语法进行解析的模式,属于行为型模式。 比如编译器可以将源码编译为机器码,让CPU能进行识别并运行。解释器模式的作用其实与编 阅读全文
摘要:
中介者模式(Mediator Pattern) 中介者模式,又称为调解者模式或者调停者模式。它是用一个中介对象封装一系列的对象交互,使得各对象不需要显示的相互调用,降低耦合性,而且可以独立的改变这些对象之间的交互,属于行为型模式。 中介者模式的核心思想是通过中介者对象解耦系统各层次对象的直接耦合,各 阅读全文
摘要:
状态机是状态模式的一种应用,相当于上下文角色的一个升级版。在工作流和游戏中有大量使用。如各种工作流引擎,几乎是状态机的子集和实现,封装状态的变化规则。Spring也给我们提供了一个很好的解决方案。在spring中的组件名称就叫StateMachine。状态机简化状态控制的开发过程,让状态机结构更加层 阅读全文
摘要:
状态模式 状态模式也成为状态机模式,是允许对象在内部状态发生改变时改变它的行为。对象看起来好像改变了它的类,属于行为型模式。 角色: 上下文角色(Context):定义客户端需要的接口,内部维护一个当前状态实例,并负责具体状态的切换。 抽象状态角色(State):定义该状态下的行为,可以有一个或多个 阅读全文
摘要:
命令模式 命令模式是对命令的封装,每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式解耦了请求方与接收方,请求方只需要请求执行命令,不用关心命令时怎样被接收,怎样被操作以及是否被执行等。命令模式属于行为型模式。 角色: 接收者角色(Receiver) 阅读全文
摘要:
迭代器模式 迭代器模式,又称为游标模式,它提供一种顺序访问集合/容器 对象元素的方法,而又无需暴漏集合内部表示。迭代器模式可以为不同的容器提供一致的遍历行为,而不用关心容器内容元素组成结构,属于行为型模式。 角色: 抽象迭代器Iterator:负责定义访问和遍历元素的接口 具体迭代器Concrete 阅读全文
摘要:
责任链模式 责任链模式,是将链中每一节点看作是一个对象每个节点处理的请求均不同,且内部自动维护一个下一节点对象。当一个请求从链式的首段发出时,会沿着链的路劲依次传递给每一个节点对象,直到有对象处理这个请求为止。属于行为型模式。 角色: 抽象处理者(Handler):定义一个处理请求的方法,并维护一个 阅读全文
摘要:
策略模式 策略模式,又叫政策模式,它是将定义的算法家族分别封装起来,让他们之间可以互相替换,从而让算法的变化不会影响到使用算法的用户,属于行为型模式。 角色: 上下文角色(Context):用来操作策略的上下文环境,屏蔽高层模块对策略,算法的直接访问,封装可能存在的变化。 抽象策略角色(Strate 阅读全文
摘要:
装饰器模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 角色: 抽象组件(Com 阅读全文