在策略模式中,一个类的行为或其算法可以在运行时更改。
主要解决:在有多种算法相似的情况下,使用if else所带来的复杂和难以维护
如何解决:将这些算法封装成一个一个的类,任意地替换。
关键代码:实现同一个接口。
优点:
1、算法可以自由切换
2、避免使用多重条件判断
3、扩展性良好
缺点:
1、策略类会增多
2、所有策略类都需要对外暴露
使用场景:
1、如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。
2、很多的if else情况。
3、一个系统需要动态地在几种算法中选择一种。
原文:https://www.cnblogs.com/Aug-20/p/11672916.html