Java 设计模式 之 策略模式

Java设计模式之策略模式示例详解 现实生活中我们到商场买东西的时候,卖场往往根据不同的客户制定不同的报价策略,比如针对新客户不打折扣,针对老客户打9折,针对VIP客户打8折...现在我们要做一个报价管理的模块,简要点就是要针对不同的客户,提供不同的折扣报价。如果是有你来做,你会怎么做?if ("新客户".equals(customType)) {System.out.println("抱歉!新客户没有折扣!");}else if ("老客户".equals(customType)) { 阅读详情

http://www.verejava.com/?id=16999166513476

package com.strategy.theory;

public class TestStrategy
{
	public static void main(String[] args)
	{
		Context ctx=new Context(new StrategyImplA());
		ctx.doMethod();
		
		ctx=new Context(new StrategyImplB());
		ctx.doMethod();
		
		ctx=new Context(new StrategyImplC());
		ctx.doMethod();
	}
}





package com.strategy.theory;

public class Context
{
	private Strategy strategy;
	
	public Context(Strategy strategy)
	{
		this.strategy=strategy;
	}
	
	public void doMethod()
	{
		strategy.method();
	}
}





package com.strategy.theory;

public abstract class Strategy
{
	public abstract void method();
}





package com.strategy.theory;

public class StrategyImplA extends Strategy
{

	@Override
	public void method()
	{
		System.out.println("方法实现 A");
		
	}

}





package com.strategy.theory;

public class StrategyImplB extends Strategy
{

	@Override
	public void method()
	{
		System.out.println("方法实现 B");
		
	}

}






package com.strategy.theory;

public class StrategyImplC extends Strategy
{

	@Override
	public void method()
	{
		System.out.println("方法实现 C");
		
	}

}


http://www.verejava.com/?id=16999166513476

【Java设计模式】Java设计模式之(十五)策略模式(Strategy Pattern) 本文目录 一、策略模式介绍 1.1 含义 1.2 适用场景 1.3 主要解决 1.4 应用实例 1.5 优缺点 二、策略模式实现 2.1 类图 2.2 代码实现 第一个案例:策略模式代码实现 第二个案例:策略模式代码实现 三、源码分析 这种类型的设计模式属于行为型模式。 一、策略模式介绍 1.1 含义 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为 阅读详情

相关推荐

小故事说JAVA设计模式-策略模式【Strategy Pattern】

# 弄清概念 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化 # 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。下面就以一个示意性的实现讲解策略模式实例的结构: 这个模式

平凡的世界 278

Java特性之设计模式【策略模式】

在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式

Vinjcent 1万+

将点云坐标转换成世界坐标的demo

将点云坐标转换成世界坐标的demo

howard789的博客 2206

Java设计模式——策略模式

策略模式 1.策略模式简介 策略模式:策略模式是一种行为型模式,它将对象和行为分开,将行为定义为 一个行为接口 和 具体行为的实现。策略模式最大的特点是行为的变化,行为之间可以相互替换。每个if判断都可以理解为就是一个策略。本模式使得算法可独立于使用它的用户而变化 2.模式结构 策略模式包含如下角色: Strategy: 抽象策略类:策略是一个接口,该接口定义若干个算法标识,即定义了若干个抽象方法(如下图的algorithm()) Context: 环境类 /上下文类: 上下文是依赖于接口的类(

涛涛的个人博客 9万+

MobileNet V3 图像分类

MobileNet V3

Henry的博客 1768

配置xen上VM混杂模式,使其能捕获物理网络流量

本文目的:配置VM和xen相应的物理网卡(pif)和虚拟网卡(vi

LeoDuo的专栏 3720

[设计模式- 行为模式(11种)-03策略模式]

[设计模式- 行为模式(11种)-03策略模式]

m0_61164038的博客 569

别再只盯着GPS了!手把手教你用Python仿真UWB定位,30厘米精度是怎么算出来的?

本文详细解析了UWB(超宽带)室内定位技术的原理与实现,通过Python代码演示如何从三边测量法到实现30厘米精度的定位。文章涵盖了UWB的核心数学模型、Python仿真环境搭建、误差分析及优化策略,为开发者提供了实用的技术指南和应用场景。

weixin_26873711的博客 252

JAVA设计模式学习之策略模式详解

在软件开发中,经常会遇到这种情况,开发一个功能可以通过多个算法去实现,我们可以将所有的算法集中在一个类中,在这个类中提供多个方法,每个方法对应一个算法, 或者我们也可以将这些算法都封装在一个统一的方法中,使用if…在策略模式中可以定义一些独立的类来封装不同的算法,每一个类封装一种具体的算法,在这里每一个封装算法的类都可以被称为一种策略,为了保证这些策略在使用时具有一致性,一般会提供一个抽象的策略类来做算法的声明.而每种算法对应一个具体的策略类.此角色给出所有的具体策略类所需的接口。

weixin_45554007的博客 2548

亚马逊广告接口 amazon advertising

亚马逊广告接口官方说明:https://advertising.amazon.com/API/docs/en-us/setting-up/account-setup 一:注册aws开发者账号 注册地址:https://developer.amazon.com 二:填写注册资料 三:进入控制台,生成安全配置文件 进入 Login with Amazon 菜单: 创建配置文件: 四:申请广告接入权限 申请地址:https://advertising.amazon.com/zh-cn/about-api

lzy66666的博客 4775

芒果YOLO11改进145:Loss损失函数KLD:即插即用 NeurIPS顶会论文,独家首发原创新颖|通过 Kullback-Leibler 散度学习用于目标检测的高精度边界框

旋转检测Loss损失函数KLD:即插即用 NeurIPS顶会论文,独家首发原创新颖|通过 Kullback-Leibler 散度学习用于目标检测的高精度边界框

包括YOLOv5、YOLOv7、YOLOv8等模型改进 565

java设计模式之策略模式

策略模式是一种行为模式,它将对象和行为分开,将行为定义为一个行为接口和具体的行为实现,说白了策略模式就是用来解决多个if判断的情况的。

royal1235的博客 4807

零基础吃透!Python爬虫实战:超详细爬取小红书图文,解析封面+标题+文案全流程

本文为零基础开发者提供小红书图文爬取全流程指南,针对动态加载、严格反爬等核心痛点,从环境配置到数据解析详细讲解。主要内容包括: 核心特性分析:动态加载机制需抓包获取真实接口,严格反爬依赖Cookie验证和请求头伪装 环境准备:Python 3.8-3.10环境,使用requests/beautifulsoup4等库,通过浏览器开发者工具获取有效Cookie 实战步骤: 定位关键API接口(note/list) 配置请求头(含Cookie/User-Agent/Referer) 实现分页爬取和异常处理 解析封

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 728

Java设计模式--策略模式【Strategy Pattern】

策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。    策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封

CoderLover 541

使用VNA(Vector Network Analyzer)对S参数进行去嵌(二)

无论是使用 EM 仿真工具创建的简化模型(如一段理想传输线)还是复杂模型用于测试夹具,现在都需要使用该 S 参数模型执行去嵌入过程。

小孟同学的博客 6106

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Java设计模式——策略模式【Strategy Pattern】

Java设计模式、策略模式

scorpio的博客 685

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java设计模式之策略模式(Strategy Pattern)

总结: 策略模式是一种优雅且灵活的设计模式,它允许在运行时选择不同的算法实现方式,实现算法的定义与使用分离。策略模式在Java中的应用非常广泛,它提供了一种优雅的方式来实现算法的选择和组合。例如,在一个电商平台中,根据用户的会员等级,我们可能会对购物车的折扣进行不同的计算。假设我们正在开发一个电商平台,根据不同的用户等级提供不同的折扣策略。在上面的示例中,我们成功地使用了策略模式,根据不同的用户等级提供不同的折扣策略。)并不关心具体的折扣实现,而是通过策略接口与具体的策略类进行交互,实现了算法的动态切换。

weixin_38682092的博客 312

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Java 设计模式之策略模式 (Strategy Pattern) 详解

策略模式通过将算法的选择和实现分离,使得算法可以独立变化,客户端代码可以更简洁和灵活。策略模式(Strategy Pattern)是一种行为型设计模式,旨在定义一系列算法,将每个算法封装起来,并使它们可以互相替换,从而使得算法的变化不会影响使用算法的客户端。策略模式的主要结构包括策略接口、具体策略类和上下文类,通过将算法的选择与使用分离,实现了代码的可维护性和灵活性。通过策略模式和工厂模式的结合,可以实现一个灵活、可扩展且易于维护的支付系统。通过策略模式,可以根据用户选择的支付方式动态切换支付策略。

微笑听雨 3574

Java设计模式-策略模式(Strategy Pattern)

一、策略模式定义策略模式定义了一系列的算法,并分别封装起来,使它们可相互替换。此模式使得算法可独立于使用它的客户而变化。策略模式的好处是可以动态设定客户的行为。二、策略模式要解决的问题对于继承自同一个父类的许多具体子类,为了提高代码的复用性,首先必然要抽取所有子类都具有的方法,将其写入父类,通过继承的方式使用这些方法。对于某一个子类独有的方法,则在该子类中单独实现,不涉及代码的复用。而重点在于,如何

一路洒满阳光! 543

Java设计模式详解:策略模式(Strategy Pattern)

策略模式是一种灵活且强大的设计模式,能够帮助开发者将算法与业务逻辑解耦,实现动态切换行为。适用场景:需要动态切换算法、避免复杂条件语句、扩展性强的场景。优点:算法独立、可替换、符合开闭原则。缺点:类数量增加、客户端需了解所有策略类。通过合理使用策略模式,可以显著提升代码的灵活性和可维护性。在实际开发中,策略模式常与工厂模式、代理模式等结合使用,以进一步增强系统的扩展性和可配置性。掌握策略模式,将为你的Java开发之路增添一把利器!

m0_73941339的博客 3784

java策略设计模式输出字母_Java 设计模式-策略模式(Strategy Pattern)

策略模式(Strategy Pattern)属于对象行为模式。其作用是针对一组算法,将每个算法封装到具有共同接口的独立类中,从而使它们可以相互替换。策略模式的意图是将可以互换的方法封装在各自的对立类中并且让每个方法都实现一个共同的接口。策略模式(Strategy pattern)中涉及到三个角色:环境(Context)角色:持有一个Strategy类的引用的类抽象策略(Abstract Strat...

weixin_28784019的博客 619

Java设计模式教程-策略模式(Strategy Pattern)

相关源码 1 简介 1.1 定义 也叫做政策模式(Policy Pattern) wiki 对象有某个行为,但是在不同的场景中,该行为有不同的实现算法.。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法. 定义 Define a family of algorithms,encapsulate each one,and make them interchangeable. 定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。 常见 if/els

JavaEdge全是干货的技术号 1324

Java设计模式 十六 策略模式 (Strategy Pattern)

策略模式通过将算法封装在独立的策略类中,使得算法的切换变得更加灵活。它避免了在代码中出现大量的条件判断,使得系统更加符合开闭原则,便于扩展和维护。尤其在面对需要多种行为或算法的场景下,策略模式提供了一种非常有效的解决方案。

空 707

Java设计模式——策略模式(Strategy Pattern)

是

奔跑8蜗牛 415

java strategy模式,Java设计模式——策略模式(Strategy pattern)

策略模式,在阿里巴巴开发手册中有提到过,可以用来减少if-else嵌套,是一个常用的设计模式。策略模式结构如下图,一个上下文Context只有一个抽象的策略Strategy,可以调用该策略的strategyInterface()执行具体的策略方法。就比如平常用手机支付,我的手机持有系统级别的抽象的支付方式,然后支付宝和微信支付来具体实现我的支付接口,用户需要付款时,弹窗让用户选择使用哪种方式付款,...

weixin_39765625的博客 301
上一篇: Java 设计模式 之 观察者模式
下一篇: Java 设计模式 之 模版模式
verejava
博客等级 码龄8年 39粉丝 203原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值