
设计模式
文章平均质量分 78
影落离风
这个作者很懒,什么都没留下…
展开
-
业务重构时用事件驱动模式
前言 需求:当新用户注册时,需要给用户发放各种礼品、积分、短信、邀请人奖励等。 常见写法 直接将上述后续操作堆到注册方法里,搞的注册方法又臭又长;当有其他注册如app注册、小程序注册、第三方注册时,然后将同样的发放逻辑复制的到处都是,可读性、维护性极差 优化:可以将发放逻辑抽成一个方法,然后供调用,这个应该是最常用的; 但随着业务的扩张,可能不止普通用户、还有承包商、供应商等。可能都已经是不同的表了,他们也有不同的发放逻辑。 然后发放逻辑建好几个方法,将之前的逻辑复制过去改一改;最后这个发放逻辑就会原创 2021-11-06 11:28:10 · 422 阅读 · 0 评论 -
代码说孙兴高明远王政在扫黑风暴中的职责
前言 看过扫黑风暴,我们都知道孙兴是一家ktv的boss,高明远是绿藤的boss,王政是整个省的boss。因为他们的职责不同,所以解决的问题也不同。他们之间也存在一种链接关系,就是孙兴解决不了的问题会交给高明远,高明远解决不了就找王政。孙兴只需要记住高明远可以解决他解决不了的问题,至于高明远后续会把问题抛给谁,他是不用管的。所以要实现这样的机制,我们就要用到责任链模式 步骤 首先建一个抽象的角色,定义这个角色工作的流程: 问题符合自己的等级,自己去处理,处理不了保护伞 有保护伞,交给保护伞(保护伞也是原创 2021-08-29 13:19:19 · 578 阅读 · 0 评论 -
命令模式完成李云龙对意大利炮的指挥
前言命令(Command)模式的定义如下:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。 命令模式的主要优点如下。 通过引入中间件(抽象接口)降低系统的耦合度。 扩展性良好,增加或删除命令非常方便。采用命令模式增加与删除命令不会影响其他类,且满足“开闭原则”。 其缺点是: 可能产生大量具体的命令类。因为每一个具体操作都需要设计一个具体命令类,这会增加系统的复杂性。...原创 2021-08-24 14:49:20 · 200 阅读 · 0 评论