《设计模式之禅》学习小结之访问者模式,状态模式和解释器模式

一。访问者模式


访问者模式和策略模式类似,不同的是策略模式里的“策略”主要通过Setter传递,而访问者模式里的“访问者”主要在具体调用的时候通过方法参数传递;不仅如此,策略模式里强调“策略”是一种算法,而访问者模式里强调“访问者”会调用被访问者(上图中的ConcreteElementA和ConcreteElementB)的方法,这意味着具体被访问者(注意不是抽象)的引用会通过调用访问者的方法传递给访问者;访问者模式中由于访问者的抽象依赖了具体的被访问者,违背了依赖倒置原则,使得增加一个具体的被访问者变得困难(需要同时在访问者的抽象和具体的访问者中加入新的方法)。

二。状态模式


状态模式和策略模式非常相似,将“策略”的切换部分或全部交由“策略”自己处理,这就是状态模式。

三。解释器模式


对算法进行最小化拆分,使用时再根据问题进行组合,以应对问题的变化,这就是解释器模式;解释器模式根据问题将算法和参与运算的值组合成一个树型结构,非叶子节点(NonterminalExpression)为算法,叶子节点(TerminalExpression)为参与运算的值,最后通过遍历这颗树求得问题的解。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值