【设计模式】策略模式

策略模式定义了一系列算法并封装起来,使它们可以相互替换。本文详细介绍了策略模式的概念、角色、具体实现和使用场景,对比了策略模式与继承机制的差异,强调了策略模式在应对算法变化和系统扩展性上的优势。
摘要由CSDN通过智能技术生成

策略模式

一 概述

什么是策略模式

策略模式:定义一系列算法(行为),把他们一个一个封装起来,并且使他们可以相互替换,该模式使得算法(行为)可独立与使用它的客户而变化。

为什么使用策略模式

具体例子:比如,一个人参加比赛,这场比赛有三个评委,每个评委会对选手的表现打分,然后计算平均分。这时,我们可以写一个计算平均分的方法,但这是建立在三个评委的计算方式一致的情况下,但是每个评委都不相同该怎么办呢,这时,我们就可以将这个计算规则抽象为一个接口,具体的实现交给他的实现类来完成,这样就可以很好的完成这个任务。有的小伙伴可能认为继承重写方法也可以完成,下面会对比这两种实现方式。

二 模式的结构与使用

角色
  • 策略:策略是一个接口,该接口定义若干算法(行为)标识,及定义了若干的抽象方法。
  • 具体策略:实现策略接口的类。具体策略实现策略接口所定义的抽象方法,即给出算法(行为)标识的具体实现。
  • 上下文:依赖于策略接口的类,包含有策略接口的声明,上下文中有一个方法来调用具体的策略。
具体实现
  • 策略
/*
 * 策略的抽象接口,规定具体策略要实现的方法
 */
public interface ComputableStrategy {
	public abstract double computerScore(double
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值