Strategy 策略模式

问题:

   对于特定的任务存在不同的算法,但是客户端可以在动态时间上下文中在运行时间之间切换算法;例如:对客户列表进行排序(冒泡排序、合并排序、快速排序)解决方案:为算法创建一个接口,并为算法的每个变量使用一个实现类。优点:易于扩展的新算法实现-从客户端上下文中分离算法。

 具体的案例分析:

    问题: 这里有三个算法,对这三个算法使用策略的设计模式,使得这三个散发可以在客户端随便切换:

那么首先我们要有个策略的接口:


有了这个接口后,那么具体的算法操作得去实现继承这个接口啊,于是我们有:
  

这三个已经继承这个接口了,那么我们需要一个切换器,去对他们进行可变的切换:
那就有了:

好了已经设计完毕,在app中我们就可以直接切换使用了:

猜你喜欢

转载自blog.csdn.net/weixin_41145325/article/details/80232642