Java设计模式之策略模式

本文介绍了策略模式的概念及其在软件设计中的应用。策略模式允许在运行时选择算法,通过定义一系列算法并将每个算法封装起来,使它们可以互相替换。文章通过一个缴税的例子详细展示了如何使用策略模式来动态改变对象的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java 设计模式之策略模式

    策略模式作为软件的设计模式,其设计的出发点是在对象中某个行为可能因为不同场景有多种变化或者算法实现的时候运用的一种设计模式,例如界面获取的途径,在有网的情况下从网络获取数据,没网的情况下可以从缓存中获取数据,又比如缴纳税款,每个人收入结构的差异,导致每个人的缴税算法不一致等等。

什么是策略模式

策略模式就是定义了不同的算法族,拥有不同算法的对象可以相互替换,此模式让算法的变化独立于使用算法的客户

使用策略模式的好处

可以让你动态地改变对象的行为。

设计原则

策略模式的设计原则通常是需要将完成某个功能行为从对象抽离出来定义成接口,然后使用抽象类实现该接口并继承该抽象类实现不同算法的对象或实现该接口的任何对象进行相应算法的实现,最后在使用该功能的场景下(对象中)使用相应的算法对象。通常,策略模式是在应用程序需要实现特定的服务或者功能,而且该功能有多种不同的实现的情况下使用。策略模式里面基本有四个对象,一:环境对象:该对象引用了定义某个策略行为的接口或者实现了该接口的抽象类。二:抽象策略对象:它由抽象类或接口定义。三:具体的策略对象:它实现了具体的策略对象的接口。四:使用该环境对象的对象。

举个栗子

这里就举个缴税的栗子吧
首先定义纳税功能的接口:
public interface Nashui{
   int jiaoQian();
}
定义计算缴税(使用接口)的类
public class Apply{
	public static int getNashuiNum(Nashui na){
	System.out.print(na.jiaoQian());

}
}
咱们在定义一个企业家类实现该接口
public class NashuiRich implements Nashui{
	public int jiaoQian(){
	return 1000;
}
}

再定义一个中产阶级类实现该接口

public class NashuiMin implements Nashui{
	public int jiaoQian(){
	return 100;
}
}

使用计算需要缴税数额的对象

public class GetPersonNashuiNum{
  public static  void main(String[] args){
	if(企业家){
	Apply.getNashuiNum(new  NashuiRich() );
}
	if(中产阶级){
	Apply.getNashuiNum(new NashuiMin());
}
} 
}	
	
后续有其他设计模式的讲解。。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值