您的位置:首页 > 游戏 > 游戏 > 一对一直播app源码_广州新媒体运营公司排行榜_抖音关键词搜索排名_建一个外贸独立站大约多少钱

一对一直播app源码_广州新媒体运营公司排行榜_抖音关键词搜索排名_建一个外贸独立站大约多少钱

2025/2/22 17:14:23 来源:https://blog.csdn.net/Bof_jangle/article/details/143990880  浏览:    关键词:一对一直播app源码_广州新媒体运营公司排行榜_抖音关键词搜索排名_建一个外贸独立站大约多少钱
一对一直播app源码_广州新媒体运营公司排行榜_抖音关键词搜索排名_建一个外贸独立站大约多少钱

目录

0、定义

1、策略模式的三种角色

2、策略模式的UML类图

3、示例代码


0、定义

        定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。

1、策略模式的三种角色

  • 策略(Strategy):策略是一个接口,该接口定义若干个算法标识,即定义了若干个抽象方法。
  • 具体策略(concreteStrategy):具体策略是实现策略接口的类。具体策略实现策略接口所定义的抽象方法,即给出算法标识的具体算法。
  • 上下文(Context):上下文是依赖于策略接口的类,即上下文包含有策略声明的变量。上下文中提供一个方法,该方法委托策略变量调用具体策略所实现的策略接口中的方法。

2、策略模式的UML类图

3、示例代码

策略:

package xyz.jangle.design.strategy;public interface Strategy {public void algorithm();}

具体策略A

package xyz.jangle.design.strategy;public class ConcreteStrategyA implements Strategy {@Overridepublic void algorithm() {System.out.println("这是方法A");}}

具体策略B

package xyz.jangle.design.strategy;public class ConcreteStrategyB implements Strategy {@Overridepublic void algorithm() {System.out.println("这是方法B");}}

上下文

package xyz.jangle.design.strategy;public class Context {private Strategy strategy;public Context(Strategy strategy) {super();this.strategy = strategy;}public void setStrategy(Strategy strategy) {this.strategy = strategy;}public void lookAlgorithm() {strategy.algorithm();}}

客户端(使用)

package xyz.jangle.design.strategy;public class AppMain7 {public static void main(String[] args) {ConcreteStrategyA strategyA = new ConcreteStrategyA();	Context context = new Context(strategyA);		// 注入策略Acontext.lookAlgorithm();System.out.println("-------------");context.setStrategy(new ConcreteStrategyB());	// 注入策略Bcontext.lookAlgorithm();}}

执行结果:

这是方法A
-------------
这是方法B

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com