关于实验中使用的一些设计模式的理解(2)

今天我们来总结一下另一种常用的设计模式,在lab3、lab4、lab6中都有用到,那就是策略模式

策略模式

策略模式和简单工厂模式有很多相似之处,但设计的出发点却不太相同,引用某位大佬的总结:

简单工厂模式是创建型模式,简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建并且返回哪一个产品类(这些产品类继承自一个父类或接口)的实例。

那么也就是说:
1、有已知的产品类
2、你无法准确的知道编译哪个产品类
3、需要在运行时决定创建哪个产品类
4、产品类不多

很明显看出,在创建对象上的灵活性高,但是工厂类只能创建可能会使用到的产品类,假如新添了产品类就得修改工厂类。

策略模式是行为型模式,它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。

那么也就是说:
1、某方法里有多个条件语句,条件语句代码块里有许多行为过程。
2、其算法能封装到策略类
2、算法随意切换
3、算法与客户端隔离

在一段代码里,使用了逻辑控制(if-else,swich-case)来决定算法,算法有相似的方法和函数,就可以选择策略模式。

虽然说起来很复杂,其实实现起来相当简单
在这里插入图片描述
UML图非常容易理解,只需要将相似的算法封装在不同的类中,由一个接口统一管理,在使用时根据不同情况挑选合适的类来实现算法就可以了。

总结:分离可变性与不变形

使用这个设计思想的核心是将常变化的与不常变化的分离开(如属性与行为),面向接口编程(成员属性接口实现多态)而不是面向实现类编程,方便根据不同类设置不同的行为;多用组合,少用继承,以提高代码复用性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值