适用于同一操作的不同行为,策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们可以相互替换,让算法独立于使用它的客户而独立变化,具体应用场景如第三方支付对接不同银行的算法。 要点:1)抽象策略角色 2)具体策略角色:包装相关算法和行为 3)环境角色:持有一个策略类的引用,最终给客户端调用 Read More
很多对象有每个对象对其下家的引用而连接起来形成一条链,请求在这条链上传递,直到链上某个对象决定处理此请求,应用场景如单位审批流程等。 要点:1)抽象处理者角色:定义处理请求接口及设定下家引用 2)具体处理着角色:具体处理请求或选择将请求传给下家 1、抽象处理者角色类,定义处理请求接口及下家引用 2、 Read More
适用于为不同操作添加共同的额外行为。通过代理对象访问目标对象,这样可以增加对目标对象的额外操作,达到扩展目标对象功能的目的,如spring事务、AOP等。 要点:1)抽象角色:通过接口或抽象类声明真实角色实现的业务方法。(例子中的Move) 2)代理角色:实现抽象角色,是真实角色的代理(例子中的*P Read More