摘要: 策略模式是指根据不同的对象,来采取不同的策略,其实这种场景非常场景。 促销活动中的打折就是最常见的一张。我们会根据这个客户的类型、或者他参与的活动的类型,或者是购物金额的不同采用不同的打折策略。 首先我们定义一个策略接口类 public interface Strategy { Double dis 阅读全文
posted @ 2022-01-25 17:12 Mars.wang 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 命令模式将请求封装成一系列对象,对象里包含指令和数据。 在分布式架构中,master需要给worker分发任务,worker完成后需要把任务处理结果返回给master。 master/worker之间的信息交互会有很多不同的指令和数据,这种不同消息的实现就可以采用命令模式。 我们首先定义一个命令对象 阅读全文
posted @ 2022-01-25 13:48 Mars.wang 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 备忘录模式又叫快照模式,既在不改变原对象的情况下,保存一系列它的快照,可以实现备份、撤销等操作。 InputText就是原对象,SnapShot是他的快照,SnapShotHolder负责保存一系列快照 public class InputText { private StringBuilder t 阅读全文
posted @ 2022-01-25 13:46 Mars.wang 阅读(51) 评论(0) 推荐(0) 编辑
摘要: callback不在23中设计模式之中,但我觉得它和设计模式一样重要。 大家都知道异步IO比同步IO性能更好,唯一的问题就是异步IO不能马上获得返回结果。 一般通过一个callback来获取返回值。我们通过一个简单的异步IO例子,来理解下callback的应用。 首先我们实现一个客户端,它负责发送消 阅读全文
posted @ 2022-01-25 11:17 Mars.wang 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 在设计模式中模板方法其实挺好理解的,它将多个类中共同的逻辑抽象成一个模板方法,放在父类之中。 然后把实际场景中不确定的部分写成一个抽象方法,具体逻辑由子类实现,当然实际执行的时候模板方法调用的是子类中重新实现的方法。 这样就给父类中的模板方法实现了复用,而同时又给子类留下了扩展点。 模板方法的应用很 阅读全文
posted @ 2022-01-25 09:55 Mars.wang 阅读(271) 评论(0) 推荐(0) 编辑