聊聊 策略模式,状态值模式,责任链模式,命令模式,装饰模式,建造者模式的使用场景

随着代码写的原来越多,你会经常发现一件事,代码中会出现大量 if else 这种语句,感觉看着很难受,这种情况能不能避免尼。设计模式天天挂在嘴边,但是真的很少用,很多时候经常分不清他们的使用场景

我的理解,设计模式,你要理解他们是为了解决什么问题而存在的,这样才能感觉他们的强大和实用,下面简单聊聊以下几种设计模式的不同点和使用场景(不贴代码啦,直接看UML吧

1,策略模式,定义一系类策略方法(其实干的是一件事,如:支付宝,微信,银联,本质都是支付),然后根据不同的条件选择不同的测试方法(可以避免大量的if else)

 

 

2,状态值模式:一组确定流程后期不会改变流程,流程流转比较固定(可以避免大量的if else)

                       (比如 物流状态,一般都是出仓-->运输中->签收->确认)

 

 

3,责任链模式:一组不确定的流程,可以灵活滴定制处理问题的顺序(可以避免大量的if else)

                       (审批流程,不同级别人员提交申请,可能审判流程是不一样的,随意组装)

 

 

4,命令行模式:将请求和执行,中间添加了一个中间类,将请求和具体的执行串联起来(解耦)

 

 

5,装饰模式:定义一个基本的模型,然后想给这个基本的模型添加功能,但是又不想修改原来的基本模式,装饰模式是为了解决这个的。

                   (比如:一个不恰当的例子 王者荣耀皮肤的问题,后裔是一个射手,你没钱时候,你就只能玩系统提供的默认的皮肤的后裔,但是如果你氪金后,那就不一样啦,你的后裔可以在默认的皮肤上可以在加一个翅膀,这就是装饰模式)

 

 

6,建造者模式:建造者模式是为了屏蔽复杂的建造过程,通过创建不同的建造者来模拟不同的建造过程

                        (如:装修房子:有排线,贴瓷砖,粉刷墙体,放置家具,但是这中间的顺序可以 不是固定的,如:先排线,在贴瓷砖 or 先贴瓷砖,在排线,那么此时你就通过实现2个具体建造者来模拟这不同的过程)

 

posted on 2020-03-26 16:57  柠檬糖大人你尽然盗号  阅读(532)  评论(0编辑  收藏  举报

导航