Python微信订餐小程序课程视频
https://edu.csdn.net/course/detail/36074
Python实战量化交易理财系统
https://edu.csdn.net/course/detail/35475
目录* 一、为什么讲策略模式
一、为什么讲策略模式
策略模式,应该是工作中比较常用的设计模式,调用方自己选择用哪一种策略完成对数据的操作,也就是“一个类的行为或其算法可以在运行时更改”
我个人的理解是 将一些除了过程不同其他都一样的函数封装成策略,然后调用方自己去选择想让数据执行什么过程策略。常见的例子为根据用户分类推荐不同的排行榜(用户关注点不一样,推荐榜单就不一样)
和单例模式一样,随着时间发展,我不再推荐经典策略模式,更推荐简单策略用枚举策略模式,复杂地用工厂策略模式。下面引入一个例子,我们的需求是:对一份股票数据列表,给出低价榜、高价榜、涨幅榜。这其中只有排序条件的区别,比较适合作为策略模式的例子
二、经典策略模式
数据DTO
@Data
public class Stock {
// 股票交易代码
private String code;
// 现价
private Double price;
// 涨幅
private Double rise;
}
抽象得到的策略接口
public interface Strategy {
/**
* 将股票列表排序
*
* @param source 源数据
* @return 排序后的榜单
*/
List sort(List source);
}
实现我们的策略类
/**
* 高价榜
*/
public class HighPriceRank implements Strategy {
@Override
public List<