KnightOnHorse的博客

追求技术的道路永无止境

排序:
默认
按更新时间
按访问量

Behavior.State状态模式:不同状态平行不可替换,有规律地相互切换

状态模式(State Pattern)的定义(1)定义:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。  ①状态和行为,它们的关系可以描述为“状态决定行为”  ②因状态是在运行期被改变,行为也会在运行期根据状态的改变而改变。看起来,同一个对象,在不同的运行时刻,行为是不一...

2018-04-20 12:53:24

阅读数:60

评论数:0

职责链模式的应用之模拟JavaWeb的双向过滤器(混合了组合模式)

思考职责链模式  ①职责链的本质:分离职责,动态组合。分离职责是前提,动态组合才是职责链模式的精华所在,因为这意味着可以很方便地修改和添加新的处理对象,从而让系统更加灵活和具有更好的扩展性。  ②职责链的动机:在软件构建过程中,一个请求可能被多个对象处理,但是每个请求在运行时需要有接受者,如果显式...

2018-04-19 13:00:51

阅读数:67

评论数:0

享元模式的应用之权限管理系统(混合了组合模式)

使用场景(1)系统中存在大量的相似对象(2)细粒度的对象都具有较接近的外部状态,而且内部状态与环境无关,也就是说对明没有特定的身份。(3)需要缓冲池的场景(4)如果不考虑对象的外部状态,可以用相对较少的共享对象取代很多组合对象,可以使用享元模式来共享对象,然后组合对象来使用这些共享对象。【编程实...

2018-04-19 12:27:39

阅读数:107

评论数:0

中介者模式的应用之用电脑播放电影

思考中介者模式(1)中介者模式的本质:封装交互。中介者的目的,就是用来封装多个对象的交互,这些交互的处理多在中介者对象里面实现。只要是实现封装对象之间的交互功能,就可用中介者模式,而不必过于拘泥于中介者模式本身的结构。(2)需要Mediator接口吗  这取决于是否会提供多个不同的中介者实现。如果...

2018-04-27 12:12:15

阅读数:39

评论数:0

Behavior.Mediator中介者模式:UpInform + DownNotify网状结构转星状结构

中介者模式(Mediator Pattern)的定义(1)定义:用一个中介对象来封装一系统对象交互。中介者使得各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。       ①中介者模式主要用来将同事类之间网状结构变为星状结构,使同事类之间的关系变的清晰一些。  ②所...

2018-04-27 12:10:37

阅读数:35

评论数:0

Behavior.Visitor访问者模式:算法与数据结构的分离

访问者模式(Visitor Pattern)的定义(1)定义:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。  ①模式是要解决当为对象添加新的操作和功能时候,如何尽可能不修改对象的类的一种方法。一般为对象添加功能,是需要向对象添加成员函数...

2018-04-23 12:10:45

阅读数:45

评论数:0

Behavior.Strategy策略模式:策略平等可替换,容错恢复机制

策略模式(Strategy Pattern)的定义(1)定义:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。  ①算法是同一接口的不同实现,地位是平等的,可以相互替换。  ②引入上下文对象,可以实现让算法能独立使用它的客户。因为这个对象负责...

2018-04-23 12:06:35

阅读数:41

评论数:0

模板模式的应用之两种登录控制(普通用户和管理员)

思考模板方法模式(1)模板方法模式的本质:固定算法骨架(2)模板方法模式的核心:处理某个流程的代码己经都具备,但是其中某些节点的代码不能确定。因此,将这些节点的代码实现转移给子类完成。即处理步骤父类中己经定义好,具体实现延迟到子类中定义。(3)模板方法中的变与不变  ①需要变化的地方都通过纯虚函数...

2018-04-23 11:59:19

阅读数:826

评论数:0

Behavior.TemplateMethod模板方法模式:共同方法提升至父类

模板方法模式(Template Method Pattern)的定义(1)定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。(2)模板方法模式的结构和说明   ①AbstractClass:抽象类。用于定义算法骨架...

2018-04-23 11:18:13

阅读数:33

评论数:0

观察者模式的应用之模拟事件监听系统

思考观察者模式(1)观察者模式的本质:触发联动。当修改目标对象的状态时,就会触发相应的通知,然后会循环调用所有观察者对象的相应方法,通知这些观察者,让其做相应的反应。其实就相当于联动调用这些观察者的方法。它将目标对象与观察者解耦,这样目标对象与观察者可以独立变化,但又可以正确联动起来。(2)目标对...

2018-04-20 12:41:58

阅读数:41

评论数:0

Behavior.Observer观察者模式:AttachDetachWhenChangedThenUpdate, AllObserversUpdated

观察者模式(Observer Pattern)的定义(1)定义:定义对象间的一种一对多的依赖关系。当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 (2)观察者模式的结构和说明(拉模型)   ①Subject:目标对象,通常具如的功能:一个目标可以被多个观察者观察;目标提供对...

2018-04-20 12:38:15

阅读数:24

评论数:0

Behavior.Memento备忘录模式:宽接口内置,中间数据的备份和还原

1. 备忘录模式(Memento Pattern)的定义(1)定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。  ①不破坏封装性:对象不能暴露它不应该暴露的细节。  ②捕获对象的内部状态:保存状态的目的是为了恢复,把以将某...

2018-04-20 12:33:33

阅读数:31

评论数:0

解释器模式的应用之机器人控制程序

解释器模式的优缺点(1)优点  ①易于实现文法:在解释器模式中,一条语法规则用一个解释器对象来解释执行。对于解释器的实现来讲,功能就变得比较简单,只需要考虑这一条语法规则的实现就可以了,其他的都不用管。  ②易于扩展新的语法。由于解释器采用类来描述语法规则,因此可以通过继承等机制创建相应的解释器对...

2018-04-20 12:28:05

阅读数:53

评论数:0

解释器模式的应用之中文数字转阿拉伯数字

思考解释器模式(1)解释器模式的本质:分离实现,解释执行。通过一个解释器对象处理一个语法规则的方式,把复杂的功能分离开,然后选择需要被执行的功能,并把这些功能组合成需要解释执行的抽象语法树,再按照抽象语法树来解释执行,实现相应的功能。从本质上看,解释器模式的思路仍然是分离、封装和简化,这与很多其他...

2018-04-20 12:23:40

阅读数:47

评论数:0

Behavior.Interpreter解释器模式:构建语法树

解释器模式(Interpreter Pattern)的定义(1)定义  给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。  ①文法:即语法规则。在解释器模式中每一个语法都将对应一个解释器对象,用来处理相应的语法规则。它对于扩展、改变文法以及增加新的文...

2018-04-20 12:18:55

阅读数:32

评论数:0

迭代器模式的应用之带过滤和双向遍历功能的工资查看系统

思考迭代器模式(1)迭代器的本质:控制访问聚合对象中的元素。迭代器能实现“无须暴露聚合对象的内部实现,就能够访问到聚合对象的各个元素的功能”,做到“透明”的访问聚合对象中的元素。注意迭代器能够即“透明”访问,又可以“控制访问”聚合对象,认识这点,对于识别和变形使用迭代器模式很有帮助。(2)迭代器的...

2018-04-20 12:14:18

阅读数:108

评论数:0

Behavior.Iterator迭代器模式:正向反向遍历集合对象的所有元素

迭代器模式(Iterator Pattern)的定义(1)定义:提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。  ①迭代器迭代的是具体的聚合对象(如数组和链表等),它围绕的是“访问”做文章。  ②可用不同的遍历策略来遍历聚合,比如是否需要过滤  ③为不同聚合结构提供...

2018-04-20 12:09:06

阅读数:53

评论数:0

命令模式的应用之可撤销/恢复操作的计算器

深度理解命令模式(1)参数化配置:用不同的命令对象,去参数化配置客户的请求。(2)可撤销的操作:  ①补偿式(反操作式):如被撤销的操作是加的功能,那么反操作就是减的功能。  ②存储恢复式:把操作前的状态记录下来,然后要撤销操作时就直接恢复回去就可以了。(该种方式会放到备忘录模式中进行讲解)【编程...

2018-04-20 12:02:42

阅读数:102

评论数:0

命令模式的应用之菜单项命令

思考命令模式  ①命令模式的本质:封装请求。这是也命令模式的关键。把请求封装成对象,也就是命令对象,并定义了统一的执行操作的接口。这个命令对象可以被存储、转发、记录、处理、撤销等。整个命令模式都是围绕这个对象进行的。  ②命令模式的动机:在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种...

2018-04-19 13:10:54

阅读数:75

评论数:0

Behavior.Command命令模式:Invoker发送N条Cmd来指示Receiver执行相应的操作

命令模式(Command Pattern)的定义(1)定义  将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。  ①封装请求:抽象出需要执行的动作,封装成对象(有统一的接口)。  ②参数化:可以用不同的命令对象,去参数化配置客户的请...

2018-04-19 13:06:22

阅读数:50

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭