设计模式之策略模式

前言

当时我在做公司一个项目时,进行版本迭代时,引入了一个新的获取数据方式,但该方式只用于部分渠道商(10个),其他渠道商依旧按照老版本的方式获取数据。后续可能又会引入新的方式给其他渠道商,并且这种类型的功能后续也会不断优化。

因此我使用了策略模式。把该功能抽取出来作为策略,定义一个接口(抽象策略(Strategy)类),包含了该功能的方法。对于这个接口,去做一个对应实现(具体策略(Concrete Strategy)类),并注入到各个渠道商的代码中(环境(Context)类)。后续即时引入新的方式,实现一个具体策略类就行了,然后按需注入环境类所在容器,环境类中的代码不需要改变。

正文

策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理

策略模式有三个组成角色:
抽象策略(Strategy)类
具体策略(Concrete Strategy)类
环境(Context)类

策略模式把算法的使用放到环境类中,而算法的实现移到具体策略类中,实现了二者的分离。

大白话理解:其实说的就是有一个接口(抽象接口),他有2个实现类A和B(具体策略)。然后有一个环境类Context。这个接口是Context的成员变量,然后根据外在环境来选择是用A和B。

总体来说,策略模式是一个比较简单但是又十分常用的设计模式,希望后续可以学到更多设计模式知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值