当前位置: > 财经>正文

什么是策略模式 什么是保险金信托20模式的基金投资策略

2023-09-04 00:57:45 互联网 未知 财经

什么是策略模式

1、什么是策略模式

策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。

2、怎么使用

环境角色类:

public class Context { //持有一个具体策略的对象 private Strategy strategy; /** * 构造函数,传入一个具体策略对象 * @param strategy 具体策略对象 */ public Context(Strategy strategy){ this.strategy = strategy; } /** * 策略方法 */ public void contextInterface(){ strategy.strategyInterface(); } }

抽象策略类:

public interface Strategy { /** * 策略方法 */ public void strategyInterface();}

具体策略类:

public class ConcreteStrategyA implements Strategy { @Override public void strategyInterface() { //相关的业务 }}public class ConcreteStrategyB implements Strategy { @Override public void strategyInterface() { //相关的业务 }}public class ConcreteStrategyC implements Strategy { @Override public void strategyInterface() { //相关的业务 }}

客户端:

public class Client { public static void main(String[] args) { //选择并创建需要使用的策略对象 Strategy strategy = new ConcreteStrategyA (); //创建环境 Context context = new Context(strategy); double quote = context .strategyInterface(300); System.out.println("图书的最终价格为:" + quote); }} 策略模式的重心

策略模式的重心不是如何实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活,具有更好的维护性和扩展性。

缺点:

(1)客户端必须知道所有的策略类,并自行决定使用哪一个策略类。这就意味着客户端必须理解这些算法的区别,以便适时选择恰当的算法类。换言之,策略模式只适用于客户端知道算法或行为的情况。

(2)由于策略模式把每个具体的策略实现都单独封装成为类,如果备选的策略很多的话,那么对象的数目就会很可观。

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。