2014年12月23日

学习笔记——访问者模式Visitor

摘要: 访问者模式,通过Visitor的注入,为Element扩展了方法实现。虽然避免了Element不用修改即可修改,但却破坏了类的封装性,同时,一旦变更就需要增加子类,在子类方法中调用基类方法,然后再使用Visitor的方法来扩展。个人理解,Visitor有点类似于策略模式中的算法,都是通过组合的方法变... 阅读全文

posted @ 2014-12-23 17:19 阿呜的边城 阅读(95) 评论(0) 推荐(0) 编辑

学习笔记——命令模式Command

摘要: 命令模式,将具体操作Receiver封在Command中,调用类只需要知道Command即可。 阅读全文

posted @ 2014-12-23 15:30 阿呜的边城 阅读(107) 评论(0) 推荐(0) 编辑

学习笔记——中介者模式Mediator

摘要: 中介者模式,A与B之间存在调用对方操作的行为,通过中介者模式,可以去除双方的强引用。如图,A可以通过代理Mediator的方法来调用B的方法,而不需要保存B的引用。 阅读全文

posted @ 2014-12-23 15:08 阿呜的边城 阅读(113) 评论(0) 推荐(0) 编辑

学习笔记——备忘录模式Memento

摘要: 备忘录模式,可以将当前状态保存,并随时恢复。Originator存在状态state,当需要保存此状态时,通过CreateMemento创建一个备忘录对象Memento保存此状态;而需要恢复相应状态时,使用RestoreMemento(memento)将相应的状态恢复回来。 阅读全文

posted @ 2014-12-23 14:49 阿呜的边城 阅读(108) 评论(0) 推荐(0) 编辑

学习笔记——观察者模式Observer

摘要: 观察者模式,当事件发生时,调用相应观察者的方法进行“通知”。Subject中使用一个数据结构存储需要通知的观察者对象,执行Notify时,执行所有观察者的Update方法。 阅读全文

posted @ 2014-12-23 14:31 阿呜的边城 阅读(103) 评论(0) 推荐(0) 编辑

学习笔记——状态模式State

摘要: 状态模式,主要是用于存在大量case判断的操作执行,同时这些case依赖于对象的状态,那么就可以将大量的case判断封装为独立的类。Context:-state,当前状态对象。ChangeState(state),切换state对象。OperationInterface(),调用State->Ope... 阅读全文

posted @ 2014-12-23 09:53 阿呜的边城 阅读(161) 评论(0) 推荐(0) 编辑

学习笔记——策略模式Strategy

摘要: 策略模式,与模板模式一样,都是为了将接口和算法实现解耦,但策略模式更主要是整体算法的替换,而模板模式主要是流程一致,部分算法的替换。个人理解为,一般算法替换,使用策略模式,当算法流程一致,可以提取为模板模式。实际中,策略模式,使用组合方式,将算法实现脱离上下文,上下文可以依据需要,使用不同的算法实现... 阅读全文

posted @ 2014-12-23 09:10 阿呜的边城 阅读(112) 评论(0) 推荐(0) 编辑

导航